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
- MsmqIntegrationChannelListener.cs
- WebPartEditorCancelVerb.cs
- ManagedWndProcTracker.cs
- DiagnosticTraceSchemas.cs
- ToolStripSplitStackLayout.cs
- TreeViewItem.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- OuterGlowBitmapEffect.cs
- TemplateBuilder.cs
- MatrixValueSerializer.cs
- _NetRes.cs
- WebServiceAttribute.cs
- SqlCommandSet.cs
- NativeMethods.cs
- TextViewSelectionProcessor.cs
- TransactionValidationBehavior.cs
- SelectedDatesCollection.cs
- WebServiceResponse.cs
- RestHandlerFactory.cs
- GPRECTF.cs
- ComponentChangingEvent.cs
- ServiceBusyException.cs
- TemplateBuilder.cs
- FtpRequestCacheValidator.cs
- DataRow.cs
- DispatcherProcessingDisabled.cs
- SimpleHandlerFactory.cs
- Interfaces.cs
- ScalarRestriction.cs
- AssociativeAggregationOperator.cs
- ImageAnimator.cs
- MsmqIntegrationMessagePool.cs
- EditingMode.cs
- EntityDataSource.cs
- SamlNameIdentifierClaimResource.cs
- EdmComplexTypeAttribute.cs
- MetadataItemEmitter.cs
- SubclassTypeValidator.cs
- AsyncOperationManager.cs
- TableColumn.cs
- MouseActionConverter.cs
- OracleLob.cs
- Button.cs
- IncrementalHitTester.cs
- SafeFileMappingHandle.cs
- XmlAttributeCollection.cs
- ErrorTolerantObjectWriter.cs
- ItemsControlAutomationPeer.cs
- SqlCommandSet.cs
- BooleanKeyFrameCollection.cs
- ContainerActivationHelper.cs
- Brush.cs
- PropertyDescriptorComparer.cs
- LineInfo.cs
- VarInfo.cs
- ComUdtElement.cs
- ResolveNameEventArgs.cs
- QueryStatement.cs
- Expression.cs
- HitTestWithGeometryDrawingContextWalker.cs
- EventListenerClientSide.cs
- EdmSchemaAttribute.cs
- SoapIncludeAttribute.cs
- Component.cs
- SyntaxCheck.cs
- ObjectIDGenerator.cs
- StaticFileHandler.cs
- Util.cs
- ListViewDeleteEventArgs.cs
- ConfigXmlDocument.cs
- EntityTemplateFactory.cs
- FileUtil.cs
- FileSystemWatcher.cs
- CodeTypeOfExpression.cs
- NativeMethodsCLR.cs
- DocumentPageViewAutomationPeer.cs
- OrderedHashRepartitionStream.cs
- StopRoutingHandler.cs
- DependencyPropertyValueSerializer.cs
- ApplicationServiceManager.cs
- DataGridViewComboBoxColumn.cs
- StandardToolWindows.cs
- ProxyHelper.cs
- XmlReader.cs
- TableItemProviderWrapper.cs
- DataServiceQueryProvider.cs
- ScalarType.cs
- AssemblyEvidenceFactory.cs
- CqlBlock.cs
- DataContractSerializerServiceBehavior.cs
- AppDomainCompilerProxy.cs
- EventLogPermissionAttribute.cs
- DocumentSignatureManager.cs
- RenamedEventArgs.cs
- ProfilePropertySettingsCollection.cs
- System.Data.OracleClient_BID.cs
- RemoteWebConfigurationHost.cs
- TickBar.cs
- ScriptMethodAttribute.cs
- SafeRsaProviderHandle.cs