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
- HttpHandlerActionCollection.cs
- CatalogZoneBase.cs
- SecurityChannelListener.cs
- RecordConverter.cs
- LayoutTable.cs
- ActivityExecutorDelegateInfo.cs
- ParsedAttributeCollection.cs
- ConstructorArgumentAttribute.cs
- RadioButtonFlatAdapter.cs
- DynamicResourceExtensionConverter.cs
- NewItemsContextMenuStrip.cs
- Repeater.cs
- Sentence.cs
- ImageMetadata.cs
- FileCodeGroup.cs
- EditorPartChrome.cs
- ObjectRef.cs
- CompilerTypeWithParams.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- VariableExpressionConverter.cs
- CodeRemoveEventStatement.cs
- EntityProviderFactory.cs
- Control.cs
- ValueUnavailableException.cs
- SecureEnvironment.cs
- SynchronizationLockException.cs
- MetadataItemSerializer.cs
- LogReservationCollection.cs
- CompiledQuery.cs
- WeakReadOnlyCollection.cs
- MasterPageCodeDomTreeGenerator.cs
- CodeDirectiveCollection.cs
- TrustSection.cs
- Rotation3DAnimationBase.cs
- Win32Exception.cs
- DataGridViewCellLinkedList.cs
- AppModelKnownContentFactory.cs
- BindingRestrictions.cs
- MemoryFailPoint.cs
- TemplateEditingVerb.cs
- JulianCalendar.cs
- DocumentXPathNavigator.cs
- UnsafeNativeMethods.cs
- Utils.cs
- DataSvcMapFile.cs
- PolyQuadraticBezierSegment.cs
- EnumerableCollectionView.cs
- SerTrace.cs
- SqlDataSourceCache.cs
- DocumentSequence.cs
- DBConnectionString.cs
- AbandonedMutexException.cs
- NamespaceImport.cs
- Timeline.cs
- DataGridCell.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- SHA1CryptoServiceProvider.cs
- StrokeNodeData.cs
- XhtmlTextWriter.cs
- ActivityStatusChangeEventArgs.cs
- EventLogTraceListener.cs
- OleDbException.cs
- Error.cs
- XmlTextReaderImplHelpers.cs
- CommandField.cs
- TimeSpanOrInfiniteConverter.cs
- LogStore.cs
- ToolBar.cs
- RowBinding.cs
- TreePrinter.cs
- ValidatorCompatibilityHelper.cs
- TextCompositionManager.cs
- CdpEqualityComparer.cs
- TraceFilter.cs
- IDQuery.cs
- AttachedPropertyMethodSelector.cs
- SizeFConverter.cs
- BamlRecords.cs
- OleDbSchemaGuid.cs
- EventlogProvider.cs
- DateTimeOffsetAdapter.cs
- DocumentEventArgs.cs
- EllipseGeometry.cs
- UnauthorizedWebPart.cs
- ColumnTypeConverter.cs
- NativeMethods.cs
- ReachPageContentCollectionSerializer.cs
- Int32AnimationUsingKeyFrames.cs
- ScaleTransform.cs
- CheckBoxPopupAdapter.cs
- SynchronizingStream.cs
- ProgressBarBrushConverter.cs
- EntityViewGenerationAttribute.cs
- DataRelationCollection.cs
- MultiView.cs
- Package.cs
- ColumnWidthChangingEvent.cs
- FeatureAttribute.cs
- TextContainerHelper.cs
- PeerNameRecordCollection.cs