Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / HttpProxyTransportBindingElement.cs / 2 / HttpProxyTransportBindingElement.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace Microsoft.InfoCards { using System.Collections.Generic; using System.ServiceModel.Description; using System.ServiceModel; using System.Net; using System.ServiceModel.Channels; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // This class is used to replace the TransportBindingElement to a binding element which uses the user's proxy // class HttpProxyTransportBindingElement :TransportBindingElement { HttpTransportBindingElement innerHttpTransport; IWebProxy proxy; // // Summary: // Replaces the HttpTransportBindingElement from the collection with HttpProxyTransportBindingElement // // Arguments: // bindingElements: The bindingElements collection to update // proxy: The proxy to be used for HttpTransport // turnOffClientAuthOnTransport: When set to true, the AuthenticationScheme for the transport // binding will be set to ANonymous // // Returns: // Returns the updated bindingElements collection. // public static BindingElementCollection ReplaceHttpTransportWithProxy( BindingElementCollection bindingElements, IWebProxy proxy, bool turnOffClientAuthOnTransport ) { int httpIndex = -1; for( int i = 0; i < bindingElements.Count; i++ ) { if( bindingElements[ i ] is HttpTransportBindingElement ) { httpIndex = i; break; } } if( httpIndex == -1 ) { // no HttpTransport to wrap, just return original binding return bindingElements; } IDT.Assert( httpIndex == bindingElements.Count - 1, "Transport should be last in the Binding Element list" ); HttpTransportBindingElement httpTransport = ( HttpTransportBindingElement )bindingElements[ httpIndex ]; if( turnOffClientAuthOnTransport ) { httpTransport.AuthenticationScheme = AuthenticationSchemes.Anonymous; } HttpProxyTransportBindingElement proxyTransport = new HttpProxyTransportBindingElement( proxy, httpTransport ); bindingElements[ httpIndex ] = proxyTransport; return bindingElements; } HttpProxyTransportBindingElement( IWebProxy proxy, HttpTransportBindingElement innerHttpTransport ) : base() { this.innerHttpTransport = innerHttpTransport; this.proxy = proxy; } HttpProxyTransportBindingElement( HttpProxyTransportBindingElement elementToBeCloned ) : base( elementToBeCloned ) { this.innerHttpTransport = elementToBeCloned.innerHttpTransport; this.proxy = elementToBeCloned.proxy; } public override long MaxBufferPoolSize { get { return this.innerHttpTransport.MaxBufferPoolSize; } set { this.innerHttpTransport.MaxBufferPoolSize = value; } } public override long MaxReceivedMessageSize { get { return this.innerHttpTransport.MaxReceivedMessageSize; } set { this.innerHttpTransport.MaxReceivedMessageSize = value; } } public override string Scheme { get { return this.innerHttpTransport.Scheme; } } public override IChannelFactoryBuildChannelFactory ( BindingContext context ) { this.innerHttpTransport.Proxy = this.proxy; HttpChannelFactory factory = (HttpChannelFactory)this.innerHttpTransport.BuildChannelFactory (context); return (IChannelFactory )(object)factory; } public override IChannelListener BuildChannelListener ( BindingContext context ) { return this.innerHttpTransport.BuildChannelListener ( context ); } public override bool CanBuildChannelFactory ( BindingContext context ) { return this.innerHttpTransport.CanBuildChannelFactory ( context ); } public override bool CanBuildChannelListener ( BindingContext context ) { return this.innerHttpTransport.CanBuildChannelListener ( context ); } public override BindingElement Clone() { return new HttpProxyTransportBindingElement( this ); } public override T GetProperty ( BindingContext context ) { return this.innerHttpTransport.GetProperty ( context ); } } } // 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
- DoubleCollectionValueSerializer.cs
- CanonicalFontFamilyReference.cs
- Bind.cs
- ConfigurationProperty.cs
- TimeSpanSecondsConverter.cs
- FixedDocument.cs
- HtmlEncodedRawTextWriter.cs
- StringUtil.cs
- XhtmlStyleClass.cs
- SymDocumentType.cs
- RoleServiceManager.cs
- MSAAWinEventWrap.cs
- HwndSubclass.cs
- HttpApplication.cs
- DelegateSerializationHolder.cs
- RefreshEventArgs.cs
- EntityDataSourceDataSelection.cs
- UDPClient.cs
- StatusBarDrawItemEvent.cs
- IdentityManager.cs
- CompositeKey.cs
- WebPartAddingEventArgs.cs
- MatrixTransform3D.cs
- UrlPropertyAttribute.cs
- MenuItemStyleCollection.cs
- NetworkInformationException.cs
- IFlowDocumentViewer.cs
- MatrixTransform.cs
- SolidColorBrush.cs
- XmlDictionaryWriter.cs
- EditBehavior.cs
- BoundingRectTracker.cs
- LocalBuilder.cs
- SqlGenerator.cs
- FilterEventArgs.cs
- util.cs
- XslTransform.cs
- ErrorFormatter.cs
- ClipboardProcessor.cs
- CommonObjectSecurity.cs
- BoolExpr.cs
- OrthographicCamera.cs
- RadioButtonStandardAdapter.cs
- AppDomainFactory.cs
- VirtualDirectoryMapping.cs
- LocationUpdates.cs
- WindowsSidIdentity.cs
- SqlFormatter.cs
- BinaryCommonClasses.cs
- GlyphRunDrawing.cs
- ScrollViewer.cs
- EditorPartChrome.cs
- DataBindEngine.cs
- ParallelTimeline.cs
- DecimalAnimationUsingKeyFrames.cs
- _SSPISessionCache.cs
- TimeStampChecker.cs
- DesignerActionHeaderItem.cs
- RegexCharClass.cs
- BoundPropertyEntry.cs
- TextRenderingModeValidation.cs
- TextContainer.cs
- TextEndOfParagraph.cs
- SnapshotChangeTrackingStrategy.cs
- TreeNodeEventArgs.cs
- ControlBuilder.cs
- AsyncOperationManager.cs
- ValidationHelpers.cs
- GiveFeedbackEvent.cs
- ApplicationContext.cs
- ConnectionPoolManager.cs
- ObjectDataProvider.cs
- FeatureSupport.cs
- RoleGroupCollection.cs
- FactoryMaker.cs
- SqlLiftIndependentRowExpressions.cs
- ProcessHostConfigUtils.cs
- TextEditorContextMenu.cs
- NamedElement.cs
- MessageSmuggler.cs
- Environment.cs
- XmlTextReaderImpl.cs
- OdbcHandle.cs
- HttpClientProtocol.cs
- CollectionChangedEventManager.cs
- DataGridDetailsPresenterAutomationPeer.cs
- StorageEntityTypeMapping.cs
- ContentPlaceHolder.cs
- SqlDependencyListener.cs
- ListBindableAttribute.cs
- WebServiceEnumData.cs
- ListenerConnectionModeReader.cs
- IdentifierCollection.cs
- EventSetter.cs
- Automation.cs
- TrustManagerPromptUI.cs
- Emitter.cs
- querybuilder.cs
- HttpGetProtocolImporter.cs
- InternalTypeHelper.cs