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
- TypeSystem.cs
- ImageDrawing.cs
- MimeTypeMapper.cs
- DataObjectEventArgs.cs
- HttpTransportSecurityElement.cs
- CounterCreationData.cs
- Win32PrintDialog.cs
- ListViewItemSelectionChangedEvent.cs
- EventTrigger.cs
- SerializationException.cs
- ReadOnlyDictionary.cs
- TCPClient.cs
- DesignSurfaceServiceContainer.cs
- DataGridState.cs
- ResourceExpression.cs
- KeyFrames.cs
- ValueChangedEventManager.cs
- CngKeyBlobFormat.cs
- Mouse.cs
- DateTimeUtil.cs
- SamlSecurityToken.cs
- WsatServiceCertificate.cs
- InheritanceContextHelper.cs
- BitmapCacheBrush.cs
- WebPartHelpVerb.cs
- EndOfStreamException.cs
- XomlDesignerLoader.cs
- DataGridTableCollection.cs
- WebPartDisplayModeEventArgs.cs
- Schedule.cs
- FixedSOMPageConstructor.cs
- DescendantOverDescendantQuery.cs
- DomNameTable.cs
- WebConfigurationHost.cs
- AttachedPropertiesService.cs
- Transactions.cs
- lengthconverter.cs
- ZipFileInfoCollection.cs
- ProbeDuplexAsyncResult.cs
- AbstractDataSvcMapFileLoader.cs
- WebPartConnectionsCancelEventArgs.cs
- SecurityElement.cs
- ParseChildrenAsPropertiesAttribute.cs
- ComNativeDescriptor.cs
- _ContextAwareResult.cs
- FacetChecker.cs
- BinaryReader.cs
- GenericIdentity.cs
- ResXResourceReader.cs
- SqlFlattener.cs
- SqlInternalConnection.cs
- StoreAnnotationsMap.cs
- XmlFormatReaderGenerator.cs
- Assembly.cs
- Model3D.cs
- Transform3D.cs
- CharKeyFrameCollection.cs
- ThreadSafeMessageFilterTable.cs
- ElementHost.cs
- Color.cs
- TextBoxView.cs
- TextSegment.cs
- XmlMapping.cs
- EntityContainerEntitySet.cs
- WindowsRichEditRange.cs
- DataBoundControlAdapter.cs
- ProfilePropertySettingsCollection.cs
- SmiRequestExecutor.cs
- Polyline.cs
- BindingUtils.cs
- SoapSchemaMember.cs
- MILUtilities.cs
- SequenceDesignerAccessibleObject.cs
- ChannelPool.cs
- QueryCacheManager.cs
- DocumentXPathNavigator.cs
- Bitmap.cs
- TextTreeUndo.cs
- SqlWorkflowInstanceStore.cs
- NegotiationTokenAuthenticator.cs
- RoleGroupCollection.cs
- Translator.cs
- SyndicationFeed.cs
- TreeNodeStyle.cs
- RegionIterator.cs
- ExtensionDataReader.cs
- UIntPtr.cs
- BasicBrowserDialog.cs
- XslTransformFileEditor.cs
- UseAttributeSetsAction.cs
- NavigationCommands.cs
- FocusChangedEventArgs.cs
- sqlser.cs
- X509SecurityTokenProvider.cs
- ToolStripPanelCell.cs
- ClientEventManager.cs
- InvalidAsynchronousStateException.cs
- EmptyCollection.cs
- ListViewUpdateEventArgs.cs
- AssemblyCollection.cs