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
- QueryStringConverter.cs
- _LocalDataStoreMgr.cs
- MouseButton.cs
- InArgumentConverter.cs
- EdmItemCollection.cs
- SecurityTokenTypes.cs
- DataObjectCopyingEventArgs.cs
- PreloadedPackages.cs
- BatchParser.cs
- EventLogLink.cs
- QilDataSource.cs
- XamlFilter.cs
- AdornerPresentationContext.cs
- SelectionProcessor.cs
- WorkflowMarkupSerializerMapping.cs
- XmlDomTextWriter.cs
- IdentifierCollection.cs
- DataStorage.cs
- ObjectDataSourceDisposingEventArgs.cs
- FormClosedEvent.cs
- ChannelManager.cs
- DataControlLinkButton.cs
- WindowsAuthenticationEventArgs.cs
- DataGridViewSelectedRowCollection.cs
- TypedTableGenerator.cs
- Point3DAnimationBase.cs
- ResolveNameEventArgs.cs
- Compress.cs
- Application.cs
- StringKeyFrameCollection.cs
- TextSelectionHighlightLayer.cs
- DescendantBaseQuery.cs
- FacetEnabledSchemaElement.cs
- StringBuilder.cs
- AssemblyInfo.cs
- ToolStripTextBox.cs
- ProfileEventArgs.cs
- Bits.cs
- EntityDataSourceDesigner.cs
- OracleMonthSpan.cs
- URLMembershipCondition.cs
- ScriptRegistrationManager.cs
- TransactionalPackage.cs
- ParseHttpDate.cs
- XmlSchemaAppInfo.cs
- GrabHandleGlyph.cs
- SqlExpressionNullability.cs
- SafeCloseHandleCritical.cs
- CompModSwitches.cs
- PropertyPushdownHelper.cs
- ColorPalette.cs
- cookiecontainer.cs
- RenderContext.cs
- PointF.cs
- RadioButton.cs
- FixedBufferAttribute.cs
- HttpChannelHelper.cs
- DataGridViewButtonColumn.cs
- SerialStream.cs
- XmlDocumentType.cs
- ViewStateModeByIdAttribute.cs
- SerializerDescriptor.cs
- FileLogRecordHeader.cs
- DependencyPropertyConverter.cs
- TraceListeners.cs
- DataBindEngine.cs
- SchemaMerger.cs
- LoginViewDesigner.cs
- _HTTPDateParse.cs
- PageTheme.cs
- WebServiceHandler.cs
- CodeNamespaceImportCollection.cs
- CompressStream.cs
- LateBoundBitmapDecoder.cs
- PointCollectionConverter.cs
- ConstructorArgumentAttribute.cs
- latinshape.cs
- FixedSchema.cs
- PartialCachingAttribute.cs
- HotSpotCollection.cs
- TextMessageEncoder.cs
- GridViewColumnHeaderAutomationPeer.cs
- DbConnectionClosed.cs
- OperationFormatter.cs
- StringValidator.cs
- TypedDataSourceCodeGenerator.cs
- XmlDictionaryReader.cs
- HttpCapabilitiesEvaluator.cs
- ManagementObject.cs
- CompModSwitches.cs
- HitTestFilterBehavior.cs
- KeyedCollection.cs
- LogWriteRestartAreaState.cs
- NoneExcludedImageIndexConverter.cs
- NullableDecimalSumAggregationOperator.cs
- ParseNumbers.cs
- UndoManager.cs
- PersonalizationProviderCollection.cs
- XmlSortKeyAccumulator.cs
- PasswordTextNavigator.cs