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
- Int16Storage.cs
- AutomationPropertyInfo.cs
- CodeRemoveEventStatement.cs
- QilFactory.cs
- ProfileGroupSettings.cs
- OperationGenerator.cs
- InvalidCommandTreeException.cs
- EditingMode.cs
- PowerStatus.cs
- KnownAssemblyEntry.cs
- Grant.cs
- XmlSerializerVersionAttribute.cs
- VirtualDirectoryMapping.cs
- LongValidator.cs
- Inflater.cs
- MembershipSection.cs
- ProfileInfo.cs
- TextPointerBase.cs
- SafeSystemMetrics.cs
- Visual3DCollection.cs
- Font.cs
- ClientTargetSection.cs
- BitmapDownload.cs
- SafeFindHandle.cs
- SecurityTokenSpecification.cs
- RectangleHotSpot.cs
- WebHttpBindingCollectionElement.cs
- HttpCapabilitiesSectionHandler.cs
- KoreanLunisolarCalendar.cs
- QueryOperationResponseOfT.cs
- UrlPath.cs
- TdsParserStaticMethods.cs
- FileDialog.cs
- XslAst.cs
- DiagnosticsConfigurationHandler.cs
- MasterPageParser.cs
- EntityUtil.cs
- TraceContextRecord.cs
- Sequence.cs
- CreateUserWizardStep.cs
- SqlCommand.cs
- SigningCredentials.cs
- WebHttpSecurityElement.cs
- CharUnicodeInfo.cs
- Matrix3DStack.cs
- RoutedEventValueSerializer.cs
- DynamicDiscoveryDocument.cs
- Geometry.cs
- Geometry3D.cs
- BadImageFormatException.cs
- XmlUtilWriter.cs
- TextBoxBase.cs
- UnconditionalPolicy.cs
- DoubleLink.cs
- SafeNativeMethods.cs
- SpeechRecognizer.cs
- SQLDateTimeStorage.cs
- ResourceManagerWrapper.cs
- TableFieldsEditor.cs
- HexParser.cs
- TemplatePropertyEntry.cs
- RichTextBoxConstants.cs
- Types.cs
- WebPartMenu.cs
- IsolatedStorageFile.cs
- CustomAttributeFormatException.cs
- Expression.cs
- PageSetupDialog.cs
- HttpHandlerActionCollection.cs
- ExpandCollapsePattern.cs
- pingexception.cs
- TargetConverter.cs
- QueryableDataSourceEditData.cs
- DocumentViewerHelper.cs
- ScalarConstant.cs
- TextLineResult.cs
- PageThemeBuildProvider.cs
- BufferCache.cs
- BinarySerializer.cs
- GradientBrush.cs
- BaseConfigurationRecord.cs
- DocumentViewerHelper.cs
- XmlnsPrefixAttribute.cs
- BamlResourceDeserializer.cs
- NetDispatcherFaultException.cs
- uribuilder.cs
- OdbcConnection.cs
- ResourceContainer.cs
- DataFormats.cs
- _SSPISessionCache.cs
- SchemaComplexType.cs
- TextContainerChangeEventArgs.cs
- SByteConverter.cs
- RTLAwareMessageBox.cs
- ellipse.cs
- EntityConnectionStringBuilderItem.cs
- PathFigure.cs
- EditingMode.cs
- GrammarBuilderDictation.cs
- XmlAttribute.cs