Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Messaging / SupportingTokenListenerFactory.cs / 1 / SupportingTokenListenerFactory.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- // Defines the SupportingTokenListenerFactory, which contributes a SupportingTokenListener using System; using System.Diagnostics; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Security; using Microsoft.Transactions.Wsat.Protocol; namespace Microsoft.Transactions.Wsat.Messaging { class SupportingTokenChannelListener: LayeredChannelListener where TChannel : class, IChannel { IChannelListener innerChannelListener; SupportingTokenSecurityTokenResolver tokenResolver; ProtocolVersion protocolVersion; public SupportingTokenChannelListener(SupportingTokenBindingElement bindingElement, BindingContext context, SupportingTokenSecurityTokenResolver tokenResolver) : base(context.Binding, context.BuildInnerChannelListener ()) { this.protocolVersion= bindingElement.ProtocolVersion; this.tokenResolver = tokenResolver; } public ProtocolVersion ProtocolVersion { get { return this.protocolVersion; } } protected override void OnOpening() { base.OnOpening(); this.innerChannelListener = (IChannelListener )(object)this.InnerChannelListener; } protected override TChannel OnAcceptChannel(TimeSpan timeout) { TChannel innerChannel = this.innerChannelListener.AcceptChannel(timeout); if (innerChannel == null) return null; return WrapChannel(innerChannel); } protected override IAsyncResult OnBeginAcceptChannel(TimeSpan timeout, AsyncCallback callback, object state) { return this.innerChannelListener.BeginAcceptChannel(timeout, callback, state); } protected override TChannel OnEndAcceptChannel(IAsyncResult result) { TChannel innerChannel = this.innerChannelListener.EndAcceptChannel(result); if (innerChannel == null) return null; return WrapChannel(innerChannel); } protected override bool OnWaitForChannel(TimeSpan timeout) { return this.innerChannelListener.WaitForChannel(timeout); } protected override IAsyncResult OnBeginWaitForChannel(TimeSpan timeout, AsyncCallback callback, object state) { return this.innerChannelListener.BeginWaitForChannel(timeout, callback, state); } protected override bool OnEndWaitForChannel(IAsyncResult result) { return this.innerChannelListener.EndWaitForChannel(result); } TChannel WrapChannel(TChannel innerChannel) { if (DebugTrace.Verbose) { DebugTrace.Trace(TraceLevel.Verbose, "Creating new SupportingTokenChannel<{0}>", typeof(TChannel).Name); } if (typeof(TChannel) == typeof(IDuplexChannel)) { return (TChannel)(object)new SupportingTokenDuplexChannel(this, (IDuplexChannel)innerChannel, this.tokenResolver, this.protocolVersion); } else { // The listener supports a fixed set of channel types. The function // itself is internal. If the listener is asked to support a channel // type that the application does not recognize, that is automatically // a bug that needs to be reported back to Microsoft. DiagnosticUtility.FailFast("SupportingTokenListener does not support " + typeof(TChannel).Name); return null; // Keep the compiler happy } } } } // 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
- XmlCustomFormatter.cs
- FormsAuthenticationUser.cs
- HttpAsyncResult.cs
- ControlCachePolicy.cs
- XhtmlConformanceSection.cs
- LineGeometry.cs
- handlecollector.cs
- EntitySqlQueryState.cs
- TimeSpan.cs
- HttpCookiesSection.cs
- ObjectCacheHost.cs
- XmlSchemaInferenceException.cs
- IpcServerChannel.cs
- Profiler.cs
- ForceCopyBuildProvider.cs
- TextInfo.cs
- ListView.cs
- DataControlPagerLinkButton.cs
- MULTI_QI.cs
- MaskInputRejectedEventArgs.cs
- BulletChrome.cs
- XsdSchemaFileEditor.cs
- DataViewListener.cs
- RectangleF.cs
- SocketManager.cs
- DesignSurface.cs
- XmlEntity.cs
- xmlsaver.cs
- ExtensionCollection.cs
- PhysicalAddress.cs
- FileSystemInfo.cs
- BackgroundFormatInfo.cs
- Condition.cs
- ApplicationFileCodeDomTreeGenerator.cs
- WorkflowRuntimeService.cs
- DataGrid.cs
- GroupBoxDesigner.cs
- UInt32.cs
- TimeSpanSecondsConverter.cs
- StructuredTypeEmitter.cs
- AttributeUsageAttribute.cs
- TextDecorationLocationValidation.cs
- DataGridViewTextBoxEditingControl.cs
- TreeBuilderBamlTranslator.cs
- DataGridColumn.cs
- MailMessage.cs
- SqlDataSource.cs
- TrackingMemoryStream.cs
- TreeNodeStyle.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- AssemblyCacheEntry.cs
- PopupRootAutomationPeer.cs
- IApplicationTrustManager.cs
- HttpsHostedTransportConfiguration.cs
- DecoderNLS.cs
- XmlSchemaChoice.cs
- Popup.cs
- Part.cs
- DataGridViewImageCell.cs
- ActivityBindForm.cs
- SemaphoreFullException.cs
- DataGridViewCheckBoxColumn.cs
- AmbientValueAttribute.cs
- ResourceContainer.cs
- PropertyChangingEventArgs.cs
- WebHeaderCollection.cs
- FunctionQuery.cs
- TitleStyle.cs
- QilUnary.cs
- CodeAssignStatement.cs
- _SslStream.cs
- SocketManager.cs
- XmlnsCompatibleWithAttribute.cs
- DataServiceRequest.cs
- XmlMapping.cs
- HttpStreamFormatter.cs
- ProfileModule.cs
- SerializationStore.cs
- AssociationSet.cs
- ProxyHelper.cs
- MultiTargetingUtil.cs
- NetworkAddressChange.cs
- SqlHelper.cs
- Registry.cs
- DebugView.cs
- OutKeywords.cs
- DataGridViewImageColumn.cs
- TraceSection.cs
- WsatServiceAddress.cs
- RegexNode.cs
- TextDecorations.cs
- TextParaLineResult.cs
- ListViewInsertionMark.cs
- Persist.cs
- HostedTransportConfigurationBase.cs
- SystemUdpStatistics.cs
- Padding.cs
- CmsUtils.cs
- DbSourceParameterCollection.cs
- WebPartDeleteVerb.cs