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
- ObjectMemberMapping.cs
- SiteMapNodeItem.cs
- ConfigurationManagerInternal.cs
- BitmapMetadata.cs
- DataPagerFieldCommandEventArgs.cs
- WebServiceHandlerFactory.cs
- FillBehavior.cs
- WrappingXamlSchemaContext.cs
- HMACRIPEMD160.cs
- CallSite.cs
- FixedSOMPage.cs
- ConnectionInterfaceCollection.cs
- ClockGroup.cs
- FormsAuthentication.cs
- WebPartZoneBase.cs
- HostDesigntimeLicenseContext.cs
- StatusBarDrawItemEvent.cs
- SimpleHandlerBuildProvider.cs
- SoapAttributeOverrides.cs
- ComPlusTypeValidator.cs
- ContentType.cs
- TabControlEvent.cs
- ImageButton.cs
- Rect3DConverter.cs
- ChangeTracker.cs
- ProtocolException.cs
- ConfigurationElement.cs
- SoapClientMessage.cs
- PasswordRecoveryAutoFormat.cs
- ObjectViewEntityCollectionData.cs
- DisplayInformation.cs
- HatchBrush.cs
- BrowserDefinition.cs
- Pen.cs
- XmlSchemaDocumentation.cs
- ExtendedProperty.cs
- SiteMapNodeCollection.cs
- MessageBox.cs
- AsyncInvokeContext.cs
- Html32TextWriter.cs
- DataControlLinkButton.cs
- DoWorkEventArgs.cs
- SettingsContext.cs
- TextReader.cs
- NativeMethods.cs
- processwaithandle.cs
- TypeConverterAttribute.cs
- XmlSchemaElement.cs
- BuildProvidersCompiler.cs
- DataPagerField.cs
- StringStorage.cs
- DependencyPropertyChangedEventArgs.cs
- OdbcStatementHandle.cs
- AnnotationDocumentPaginator.cs
- MultipleViewPattern.cs
- TriggerActionCollection.cs
- WebPartVerbCollection.cs
- uribuilder.cs
- DataControlImageButton.cs
- TextEndOfLine.cs
- ObjectToIdCache.cs
- ActivityDesigner.cs
- MergePropertyDescriptor.cs
- BaseTemplatedMobileComponentEditor.cs
- XhtmlBasicLinkAdapter.cs
- FacetChecker.cs
- SyndicationSerializer.cs
- SectionInformation.cs
- DetailsViewDeleteEventArgs.cs
- Base64Encoder.cs
- ProtectedConfigurationSection.cs
- OleDbPropertySetGuid.cs
- BinaryObjectReader.cs
- ControlBuilder.cs
- DefaultExpressionVisitor.cs
- ExecutionContext.cs
- ClosableStream.cs
- RawAppCommandInputReport.cs
- relpropertyhelper.cs
- DataChangedEventManager.cs
- ClientConfigurationSystem.cs
- Predicate.cs
- TextSearch.cs
- InkSerializer.cs
- Thread.cs
- XmlSchemaInfo.cs
- DesignerDeviceConfig.cs
- XmlIgnoreAttribute.cs
- CommandBindingCollection.cs
- AsyncStreamReader.cs
- CheckPair.cs
- ComEventsHelper.cs
- AbstractDataSvcMapFileLoader.cs
- SignatureHelper.cs
- JsonGlobals.cs
- SqlAliasesReferenced.cs
- TraceSection.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- PackagePart.cs
- HyperLink.cs