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
- XmlStringTable.cs
- ImageAutomationPeer.cs
- WindowsTab.cs
- Base64Stream.cs
- BitmapMetadata.cs
- GlyphTypeface.cs
- XmlEntityReference.cs
- XmlObjectSerializerReadContextComplexJson.cs
- CompiledQuery.cs
- ZipIOExtraFieldZip64Element.cs
- UITypeEditors.cs
- WebPartCloseVerb.cs
- CustomErrorCollection.cs
- ListViewCancelEventArgs.cs
- CommandField.cs
- TimeZoneNotFoundException.cs
- ThaiBuddhistCalendar.cs
- ProcessProtocolHandler.cs
- MultiViewDesigner.cs
- InputBindingCollection.cs
- IArgumentProvider.cs
- IfAction.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- WindowsTitleBar.cs
- PngBitmapDecoder.cs
- AppDomainManager.cs
- ProcessThread.cs
- DynamicValidatorEventArgs.cs
- KeyValueConfigurationElement.cs
- LayoutEngine.cs
- SimpleWebHandlerParser.cs
- MultiByteCodec.cs
- ZipIOFileItemStream.cs
- ClientSideQueueItem.cs
- XmlAutoDetectWriter.cs
- DrawingAttributesDefaultValueFactory.cs
- SystemEvents.cs
- DbProviderSpecificTypePropertyAttribute.cs
- SmiRequestExecutor.cs
- TableLayoutCellPaintEventArgs.cs
- TableItemPatternIdentifiers.cs
- ClientConfigurationSystem.cs
- DependencyPropertyAttribute.cs
- StreamWriter.cs
- Brush.cs
- AsmxEndpointPickerExtension.cs
- TypeSemantics.cs
- FixedTextPointer.cs
- RoutedEvent.cs
- Solver.cs
- BasicCommandTreeVisitor.cs
- DbConnectionPool.cs
- DbDataSourceEnumerator.cs
- BinaryMethodMessage.cs
- HtmlMobileTextWriter.cs
- StreamGeometryContext.cs
- StickyNoteContentControl.cs
- UnauthorizedWebPart.cs
- SqlDataSourceQuery.cs
- TextPenaltyModule.cs
- TextSpanModifier.cs
- ForeignKeyConstraint.cs
- TextRangeEditLists.cs
- DBNull.cs
- StyleXamlParser.cs
- ListSortDescription.cs
- BoolExpression.cs
- Geometry3D.cs
- SourceItem.cs
- AuthenticationConfig.cs
- WebConfigurationManager.cs
- AbsoluteQuery.cs
- OdbcError.cs
- KeyGestureConverter.cs
- MetadataException.cs
- Label.cs
- ModelFunction.cs
- TaskResultSetter.cs
- ScrollEvent.cs
- TypeBrowser.xaml.cs
- TemplateBamlTreeBuilder.cs
- AudioFormatConverter.cs
- DataSourceConverter.cs
- WinEventQueueItem.cs
- ObjectStateManager.cs
- HTTPRemotingHandler.cs
- TypedReference.cs
- Int32RectConverter.cs
- StorageConditionPropertyMapping.cs
- UnionExpr.cs
- AmbientLight.cs
- PerformanceCounter.cs
- MouseDevice.cs
- UnmanagedMemoryStream.cs
- HistoryEventArgs.cs
- StateRuntime.cs
- EmptyControlCollection.cs
- GenericAuthenticationEventArgs.cs
- SHA512CryptoServiceProvider.cs
- CustomPopupPlacement.cs