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
- DllHostedComPlusServiceHost.cs
- RadioButtonList.cs
- PassportAuthenticationModule.cs
- sqlpipe.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- SessionEndedEventArgs.cs
- SettingsAttributeDictionary.cs
- ScriptingRoleServiceSection.cs
- _PooledStream.cs
- ContractBase.cs
- MaterialGroup.cs
- TextEncodedRawTextWriter.cs
- XmlAtomicValue.cs
- DataListGeneralPage.cs
- ExtentCqlBlock.cs
- DrawingContextDrawingContextWalker.cs
- ReachSerializer.cs
- XmlSerializationWriter.cs
- BaseParser.cs
- SystemException.cs
- ProtocolsConfiguration.cs
- Span.cs
- ValueHandle.cs
- GridViewUpdatedEventArgs.cs
- NetSectionGroup.cs
- backend.cs
- CodeNamespace.cs
- HostingEnvironment.cs
- StringConverter.cs
- KoreanCalendar.cs
- CommandTreeTypeHelper.cs
- FormatSettings.cs
- HttpHeaderCollection.cs
- DesignTimeDataBinding.cs
- SpecialNameAttribute.cs
- _CacheStreams.cs
- SynchronizingStream.cs
- XmlSerializationWriter.cs
- DataBoundLiteralControl.cs
- AffineTransform3D.cs
- HtmlTableCell.cs
- StateDesigner.LayoutSelectionGlyph.cs
- Visual.cs
- XamlStyleSerializer.cs
- TargetParameterCountException.cs
- FullTextBreakpoint.cs
- DataGridViewRowCollection.cs
- ElementNotEnabledException.cs
- Crypto.cs
- Bidi.cs
- TiffBitmapDecoder.cs
- OrderedDictionaryStateHelper.cs
- DNS.cs
- Timer.cs
- ByteStreamMessageEncoder.cs
- GuidTagList.cs
- ComponentChangingEvent.cs
- X509ChainPolicy.cs
- StructuralCache.cs
- XmlSignatureManifest.cs
- MbpInfo.cs
- XmlNode.cs
- FixedPageAutomationPeer.cs
- PeerToPeerException.cs
- SpellerHighlightLayer.cs
- UIntPtr.cs
- SystemWebCachingSectionGroup.cs
- BooleanFunctions.cs
- ArrayElementGridEntry.cs
- IPAddressCollection.cs
- _NestedSingleAsyncResult.cs
- OutOfMemoryException.cs
- NativeMethods.cs
- RequestCacheValidator.cs
- HttpServerUtilityBase.cs
- ParameterModifier.cs
- Update.cs
- Button.cs
- KeyedHashAlgorithm.cs
- PlainXmlWriter.cs
- BamlRecordWriter.cs
- Collection.cs
- ScriptRef.cs
- ObjectSet.cs
- BindingWorker.cs
- InkCanvasSelectionAdorner.cs
- ToolStripSettings.cs
- MultipartIdentifier.cs
- WindowsToolbarItemAsMenuItem.cs
- CanonicalFontFamilyReference.cs
- ServiceModelTimeSpanValidator.cs
- SqlError.cs
- PersonalizationStateQuery.cs
- XmlAttributeOverrides.cs
- EventItfInfo.cs
- safex509handles.cs
- BackStopAuthenticationModule.cs
- TableRowsCollectionEditor.cs
- ImageAutomationPeer.cs
- CommandField.cs