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
- Int32Animation.cs
- InsufficientMemoryException.cs
- MenuTracker.cs
- FlowDocumentPage.cs
- ExtensionQuery.cs
- TimeSpan.cs
- GridView.cs
- UseLicense.cs
- NavigationWindow.cs
- CodeCatchClause.cs
- RSAOAEPKeyExchangeFormatter.cs
- ReflectionPermission.cs
- InfoCardClaimCollection.cs
- RectangleHotSpot.cs
- WarningException.cs
- SoapElementAttribute.cs
- TransportListener.cs
- TransformerInfo.cs
- Preprocessor.cs
- OleServicesContext.cs
- BitStack.cs
- ControlUtil.cs
- AttachmentService.cs
- ConnectionProviderAttribute.cs
- FloaterParagraph.cs
- KeyGestureConverter.cs
- HttpDebugHandler.cs
- WorkflowWebService.cs
- Sentence.cs
- MatrixKeyFrameCollection.cs
- HitTestResult.cs
- WorkflowPersistenceContext.cs
- ServiceBehaviorElementCollection.cs
- XamlTemplateSerializer.cs
- UnsignedPublishLicense.cs
- Module.cs
- CodeTypeMember.cs
- SizeFConverter.cs
- DataGridAddNewRow.cs
- PathGeometry.cs
- LZCodec.cs
- TiffBitmapDecoder.cs
- Activator.cs
- DictionaryEntry.cs
- SqlDataSourceEnumerator.cs
- SwitchAttribute.cs
- ProvideValueServiceProvider.cs
- unsafenativemethodstextservices.cs
- FloaterBaseParagraph.cs
- QuerySafeNavigator.cs
- loginstatus.cs
- ipaddressinformationcollection.cs
- DataBindingsDialog.cs
- ImplicitInputBrush.cs
- _NetRes.cs
- UpnEndpointIdentity.cs
- WsatServiceCertificate.cs
- DesignerWithHeader.cs
- CfgRule.cs
- Operand.cs
- SwitchLevelAttribute.cs
- ScriptControlManager.cs
- CultureInfoConverter.cs
- OpenFileDialog.cs
- DataMember.cs
- Proxy.cs
- ColumnResizeAdorner.cs
- FormViewInsertedEventArgs.cs
- SqlEnums.cs
- ComPlusContractBehavior.cs
- baseaxisquery.cs
- oledbmetadatacolumnnames.cs
- VerificationException.cs
- InstallerTypeAttribute.cs
- CodeIdentifiers.cs
- Block.cs
- Persist.cs
- TypeFieldSchema.cs
- AutomationFocusChangedEventArgs.cs
- LinearGradientBrush.cs
- TrustManagerPromptUI.cs
- DefaultEventAttribute.cs
- ValidatingReaderNodeData.cs
- RecipientInfo.cs
- MexHttpsBindingElement.cs
- AsyncResult.cs
- NameValueSectionHandler.cs
- StringReader.cs
- TableLayoutCellPaintEventArgs.cs
- XmlSchemaFacet.cs
- TextEditorTyping.cs
- PageCache.cs
- FixedSchema.cs
- DescendentsWalker.cs
- RefreshPropertiesAttribute.cs
- SingletonInstanceContextProvider.cs
- MailAddress.cs
- LocationFactory.cs
- ScriptResourceHandler.cs
- Underline.cs