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
- SrgsElementFactory.cs
- RuleProcessor.cs
- CommonProperties.cs
- LocatorManager.cs
- ReturnValue.cs
- LineGeometry.cs
- EventTask.cs
- SignedXml.cs
- XmlSchemaAny.cs
- SamlEvidence.cs
- AncillaryOps.cs
- RolePrincipal.cs
- CursorConverter.cs
- EditCommandColumn.cs
- dataobject.cs
- NaturalLanguageHyphenator.cs
- OdbcTransaction.cs
- BitmapEffectGeneralTransform.cs
- RoutingEndpointTrait.cs
- WindowsSlider.cs
- EpmAttributeNameBuilder.cs
- SchemaDeclBase.cs
- MenuItemStyle.cs
- DataGridDetailsPresenterAutomationPeer.cs
- BufferedReadStream.cs
- MessagePartDescriptionCollection.cs
- ContentElementCollection.cs
- ConsumerConnectionPoint.cs
- _CommandStream.cs
- HyperLinkColumn.cs
- Serialization.cs
- XmlLinkedNode.cs
- TreeIterator.cs
- CodePrimitiveExpression.cs
- SafeFileMapViewHandle.cs
- ChannelServices.cs
- XamlTypeMapperSchemaContext.cs
- PageThemeCodeDomTreeGenerator.cs
- GreenMethods.cs
- LocationReferenceValue.cs
- SynchronizationLockException.cs
- XPathItem.cs
- UIPermission.cs
- ServiceModelConfiguration.cs
- TemplateParser.cs
- ReachSerializableProperties.cs
- CodeRegionDirective.cs
- Missing.cs
- FacetValues.cs
- QilExpression.cs
- HtmlShimManager.cs
- SelectedGridItemChangedEvent.cs
- NotifyInputEventArgs.cs
- DocumentViewerBase.cs
- RegexCompiler.cs
- IsolatedStoragePermission.cs
- EventLogInformation.cs
- RuntimeHandles.cs
- CodeCommentStatement.cs
- MessageAction.cs
- _SslState.cs
- Switch.cs
- UpdateCommand.cs
- Control.cs
- RoamingStoreFileUtility.cs
- GeneralTransformGroup.cs
- OdbcConnectionPoolProviderInfo.cs
- AttachedPropertyDescriptor.cs
- DmlSqlGenerator.cs
- LinearKeyFrames.cs
- SiteMapHierarchicalDataSourceView.cs
- XmlSchemaCompilationSettings.cs
- ReadingWritingEntityEventArgs.cs
- UnlockCardRequest.cs
- SoapAttributeOverrides.cs
- ListBoxAutomationPeer.cs
- RequestCacheEntry.cs
- _Connection.cs
- RSAOAEPKeyExchangeDeformatter.cs
- GetWinFXPath.cs
- InvalidAsynchronousStateException.cs
- FormClosedEvent.cs
- XmlTextEncoder.cs
- BrowserCapabilitiesCodeGenerator.cs
- AutomationIdentifier.cs
- XomlCompiler.cs
- WindowHideOrCloseTracker.cs
- ValueTable.cs
- RectangleGeometry.cs
- SqlVersion.cs
- ChildrenQuery.cs
- ListBase.cs
- Page.cs
- MarkupCompiler.cs
- StorageFunctionMapping.cs
- Exception.cs
- WindowsListViewGroup.cs
- CollectionChangeEventArgs.cs
- QueryCoreOp.cs
- XDRSchema.cs