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
- SqlParameterizer.cs
- RtType.cs
- TabletDevice.cs
- SqlNodeAnnotation.cs
- UnsafeNativeMethods.cs
- StyleTypedPropertyAttribute.cs
- WebZoneDesigner.cs
- CheckBoxField.cs
- RemotingException.cs
- Win32.cs
- LateBoundBitmapDecoder.cs
- EnumBuilder.cs
- RadioButton.cs
- WebRequestModulesSection.cs
- filewebresponse.cs
- PackageDigitalSignature.cs
- WindowsFormsSectionHandler.cs
- NameSpaceExtractor.cs
- LayoutTableCell.cs
- NameSpaceEvent.cs
- ValidateNames.cs
- CmsInterop.cs
- SizeIndependentAnimationStorage.cs
- ExpressionBinding.cs
- EntitySet.cs
- counter.cs
- SpAudioStreamWrapper.cs
- DependencyPropertyValueSerializer.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- ElementInit.cs
- ParseChildrenAsPropertiesAttribute.cs
- ErrorTableItemStyle.cs
- TextPatternIdentifiers.cs
- HtmlInputControl.cs
- PermissionSetEnumerator.cs
- UIElementCollection.cs
- AppDomain.cs
- Label.cs
- SystemUnicastIPAddressInformation.cs
- XmlAnyElementAttribute.cs
- DataServiceClientException.cs
- ListViewGroupItemCollection.cs
- GeometryModel3D.cs
- EnumType.cs
- BufferedGraphicsContext.cs
- MatrixCamera.cs
- LineMetrics.cs
- DSASignatureDeformatter.cs
- StatusBar.cs
- ReadOnlyPropertyMetadata.cs
- FontWeightConverter.cs
- InvalidWMPVersionException.cs
- ViewBox.cs
- ElementsClipboardData.cs
- XmlWellformedWriter.cs
- SafeCoTaskMem.cs
- OracleInfoMessageEventArgs.cs
- XslTransformFileEditor.cs
- MemberInfoSerializationHolder.cs
- HijriCalendar.cs
- DictionaryEntry.cs
- DependsOnAttribute.cs
- DiffuseMaterial.cs
- SoapIncludeAttribute.cs
- FragmentNavigationEventArgs.cs
- DefaultAsyncDataDispatcher.cs
- ExceptionTranslationTable.cs
- Adorner.cs
- LoginStatusDesigner.cs
- OperatorExpressions.cs
- WebResourceAttribute.cs
- ModuleConfigurationInfo.cs
- IListConverters.cs
- DispatchChannelSink.cs
- XmlSchemaAll.cs
- AddingNewEventArgs.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ScaleTransform3D.cs
- XmlValidatingReader.cs
- ConfigXmlText.cs
- HyperLinkField.cs
- ADMembershipUser.cs
- DataSourceCacheDurationConverter.cs
- ContentDisposition.cs
- PageContentAsyncResult.cs
- LocalBuilder.cs
- Utils.cs
- Run.cs
- ChannelRequirements.cs
- FrameworkContentElement.cs
- AuthenticationManager.cs
- odbcmetadatafactory.cs
- WinEventWrap.cs
- HtmlButton.cs
- TextStore.cs
- ExpressionBindingCollection.cs
- ValueUtilsSmi.cs
- ParallelDesigner.cs
- ManagementDateTime.cs
- QueryOptionExpression.cs