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
- DynamicActivityTypeDescriptor.cs
- PolyLineSegment.cs
- CharacterString.cs
- ComboBoxAutomationPeer.cs
- JsonReader.cs
- VisualCollection.cs
- SqlServices.cs
- Parameter.cs
- SHA1Managed.cs
- HtmlInputSubmit.cs
- CategoryNameCollection.cs
- CqlErrorHelper.cs
- XPathAncestorQuery.cs
- SQLBinaryStorage.cs
- Geometry3D.cs
- LowerCaseStringConverter.cs
- XmlQueryContext.cs
- XmlMapping.cs
- XmlSchemaSimpleTypeUnion.cs
- SharedPersonalizationStateInfo.cs
- GetRecipientListRequest.cs
- VBCodeProvider.cs
- Vector3DConverter.cs
- FormViewDeleteEventArgs.cs
- XDeferredAxisSource.cs
- WebConfigurationFileMap.cs
- HtmlWindowCollection.cs
- PropertyGeneratedEventArgs.cs
- InvariantComparer.cs
- StrokeNode.cs
- printdlgexmarshaler.cs
- Decoder.cs
- DiscoveryInnerClientAdhocCD1.cs
- DbgUtil.cs
- AutoGeneratedFieldProperties.cs
- DefaultProxySection.cs
- HyperLinkColumn.cs
- InternalsVisibleToAttribute.cs
- SimpleTextLine.cs
- BamlTreeNode.cs
- ModifierKeysConverter.cs
- TextComposition.cs
- RadioButton.cs
- ObjectQuery.cs
- HtmlShimManager.cs
- EntityDataSourceContainerNameItem.cs
- BackgroundWorker.cs
- codemethodreferenceexpression.cs
- ImpersonateTokenRef.cs
- CorrelationToken.cs
- CommonObjectSecurity.cs
- ManagementEventWatcher.cs
- IERequestCache.cs
- SqlConnectionString.cs
- KnownColorTable.cs
- KeyedQueue.cs
- MenuItemCollection.cs
- SafeWaitHandle.cs
- SignedXml.cs
- DataIdProcessor.cs
- IISUnsafeMethods.cs
- TextServicesCompartment.cs
- TextParaLineResult.cs
- DataGridViewCellMouseEventArgs.cs
- StylusPointDescription.cs
- AccessDataSourceView.cs
- HitTestParameters.cs
- XPathNode.cs
- FilteredDataSetHelper.cs
- FormatterConverter.cs
- ListComponentEditorPage.cs
- SafeCoTaskMem.cs
- HttpServerVarsCollection.cs
- DescendentsWalker.cs
- VariantWrapper.cs
- EntityDataSourceEntitySetNameItem.cs
- WinEventHandler.cs
- FilteredDataSetHelper.cs
- HandlerBase.cs
- SystemThemeKey.cs
- PartialTrustHelpers.cs
- FirewallWrapper.cs
- PageContentCollection.cs
- TypeValidationEventArgs.cs
- LineServices.cs
- XmlSchemaSimpleTypeList.cs
- ConnectionInterfaceCollection.cs
- PaintEvent.cs
- GlyphsSerializer.cs
- RenderData.cs
- WaitForChangedResult.cs
- SchemaAttDef.cs
- CultureInfo.cs
- DispatcherFrame.cs
- FilteredDataSetHelper.cs
- Restrictions.cs
- ModifyActivitiesPropertyDescriptor.cs
- LogicalExpr.cs
- QilSortKey.cs
- ValueType.cs