Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / StreamSecurityUpgradeInitiatorBase.cs / 1 / StreamSecurityUpgradeInitiatorBase.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Channels { using System.IO; using System.ServiceModel; using System.ServiceModel.Security; abstract class StreamSecurityUpgradeInitiatorBase : StreamSecurityUpgradeInitiator { EndpointAddress remoteAddress; Uri via; SecurityMessageProperty remoteSecurity; bool securityUpgraded; string nextUpgrade; bool isOpen; protected StreamSecurityUpgradeInitiatorBase(string upgradeString, EndpointAddress remoteAddress, Uri via) { this.remoteAddress = remoteAddress; this.via = via; this.nextUpgrade = upgradeString; } protected EndpointAddress RemoteAddress { get { return this.remoteAddress; } } protected Uri Via { get { return this.via; } } public override IAsyncResult BeginInitiateUpgrade(Stream stream, AsyncCallback callback, object state) { if (stream == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("stream"); } if (!this.isOpen) { this.Open(TimeSpan.Zero); } return this.OnBeginInitiateUpgrade(stream, callback, state); } public override Stream EndInitiateUpgrade(IAsyncResult result) { if (result == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("result"); } Stream retValue = this.OnEndInitiateUpgrade(result, out this.remoteSecurity); this.securityUpgraded = true; return retValue; } public override string GetNextUpgrade() { string result = this.nextUpgrade; this.nextUpgrade = null; return result; } public override SecurityMessageProperty GetRemoteSecurity() { if (!securityUpgraded) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.OperationInvalidBeforeSecurityNegotiation))); } return this.remoteSecurity; } public override Stream InitiateUpgrade(Stream stream) { if (stream == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("stream"); } if (!this.isOpen) { this.Open(TimeSpan.Zero); } Stream result = this.OnInitiateUpgrade(stream, out this.remoteSecurity); this.securityUpgraded = true; return result; } internal override void EndOpen(IAsyncResult result) { base.EndOpen(result); this.isOpen = true; } internal override void Open(TimeSpan timeout) { base.Open(timeout); this.isOpen = true; } internal override void EndClose(IAsyncResult result) { base.EndClose(result); this.isOpen = false; } internal override void Close(TimeSpan timeout) { base.Close(timeout); this.isOpen = false; } protected abstract IAsyncResult OnBeginInitiateUpgrade(Stream stream, AsyncCallback callback, object state); protected abstract Stream OnEndInitiateUpgrade(IAsyncResult result, out SecurityMessageProperty remoteSecurity); protected abstract Stream OnInitiateUpgrade(Stream stream, out SecurityMessageProperty remoteSecurity); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlNamespaceMapping.cs
- FunctionDetailsReader.cs
- OutputWindow.cs
- Hashtable.cs
- HtmlWindowCollection.cs
- HexParser.cs
- TargetException.cs
- ErrorTableItemStyle.cs
- LinkedResourceCollection.cs
- XmlNavigatorFilter.cs
- XmlAutoDetectWriter.cs
- MonthCalendar.cs
- AlphaSortedEnumConverter.cs
- TripleDES.cs
- ArgumentException.cs
- ObjectDataSourceFilteringEventArgs.cs
- DetailsView.cs
- ProviderConnectionPoint.cs
- SingleAnimation.cs
- ClientTarget.cs
- KeyFrames.cs
- DesignTimeTemplateParser.cs
- ToolStripPanelCell.cs
- SecurityKeyEntropyMode.cs
- HttpCacheVary.cs
- Misc.cs
- PageOrientation.cs
- PowerModeChangedEventArgs.cs
- OleDbInfoMessageEvent.cs
- TreeViewDataItemAutomationPeer.cs
- MissingMethodException.cs
- SuppressMessageAttribute.cs
- GradientStop.cs
- CollectionChangeEventArgs.cs
- ServiceOperation.cs
- Dynamic.cs
- sqlnorm.cs
- HtmlFormWrapper.cs
- LoadedOrUnloadedOperation.cs
- UpdateRecord.cs
- DynamicAttribute.cs
- HtmlTable.cs
- LinkedList.cs
- _WinHttpWebProxyDataBuilder.cs
- BitmapFrameEncode.cs
- Msmq4PoisonHandler.cs
- XmlSerializerFactory.cs
- HttpModulesInstallComponent.cs
- InstalledFontCollection.cs
- PasswordRecovery.cs
- GotoExpression.cs
- MenuCommand.cs
- TabPanel.cs
- UnitySerializationHolder.cs
- SqlParameterizer.cs
- TextPattern.cs
- selecteditemcollection.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- XPathSingletonIterator.cs
- HierarchicalDataBoundControl.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- HtmlGenericControl.cs
- XmlMtomReader.cs
- IncrementalHitTester.cs
- CodeEventReferenceExpression.cs
- HuffmanTree.cs
- XPathDocumentBuilder.cs
- Light.cs
- EventData.cs
- TypeDescriptor.cs
- WebPartTransformerAttribute.cs
- EntityDataSourceEntitySetNameItem.cs
- PermissionRequestEvidence.cs
- TypeConverter.cs
- DataGridViewColumnCollection.cs
- ReferentialConstraint.cs
- InvalidDataContractException.cs
- RemoteWebConfigurationHostServer.cs
- PolicyException.cs
- precedingquery.cs
- ADMembershipUser.cs
- LocalizationParserHooks.cs
- ClientTarget.cs
- GuidelineSet.cs
- ObjectListFieldCollection.cs
- HealthMonitoringSectionHelper.cs
- QuaternionAnimation.cs
- XmlValueConverter.cs
- LinkConverter.cs
- OdbcInfoMessageEvent.cs
- AvTraceDetails.cs
- XmlTextEncoder.cs
- DataServiceProviderWrapper.cs
- SecurityTokenProviderContainer.cs
- DbModificationClause.cs
- MetadataHelper.cs
- NativeMethods.cs
- MaskedTextBoxTextEditorDropDown.cs
- FileDialog.cs
- DataTable.cs