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
- KnownBoxes.cs
- CultureNotFoundException.cs
- EpmContentSerializer.cs
- JsonFormatReaderGenerator.cs
- _CacheStreams.cs
- ScopeElementCollection.cs
- TrimSurroundingWhitespaceAttribute.cs
- XmlWriterTraceListener.cs
- DesigntimeLicenseContext.cs
- UIntPtr.cs
- NetworkStream.cs
- XmlSchemaSimpleTypeRestriction.cs
- ShapingEngine.cs
- TextTreeExtractElementUndoUnit.cs
- TreeNodeEventArgs.cs
- WindowsStartMenu.cs
- OracleMonthSpan.cs
- ServiceOperation.cs
- path.cs
- SharedMemory.cs
- NativeMethodsCLR.cs
- Parameter.cs
- ExpandoClass.cs
- UserControlBuildProvider.cs
- DbModificationCommandTree.cs
- RedistVersionInfo.cs
- DocumentGridPage.cs
- InputMethod.cs
- SQLBytesStorage.cs
- ErrorWrapper.cs
- CmsInterop.cs
- Soap.cs
- EntitySetDataBindingList.cs
- ObjectComplexPropertyMapping.cs
- XsltQilFactory.cs
- Stroke2.cs
- ContainerAction.cs
- XmlWriter.cs
- UnauthorizedWebPart.cs
- PanelStyle.cs
- TextModifier.cs
- TaskHelper.cs
- TraceLevelHelper.cs
- HttpContext.cs
- SpeechRecognitionEngine.cs
- ResXResourceReader.cs
- ApplicationException.cs
- SecureStringHasher.cs
- ReflectEventDescriptor.cs
- FactoryRecord.cs
- Rule.cs
- ColumnWidthChangingEvent.cs
- ImportCatalogPart.cs
- SerTrace.cs
- InternalConfigSettingsFactory.cs
- CollectionViewGroup.cs
- SchemaNames.cs
- MenuItemAutomationPeer.cs
- PointLight.cs
- DataControlReference.cs
- BinaryObjectInfo.cs
- LoginCancelEventArgs.cs
- VerificationAttribute.cs
- MsmqOutputChannel.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- SessionStateContainer.cs
- WebBaseEventKeyComparer.cs
- DBSqlParserColumn.cs
- UpdateException.cs
- login.cs
- WorkflowDesigner.cs
- TimeoutValidationAttribute.cs
- PathNode.cs
- CaseInsensitiveComparer.cs
- PartialArray.cs
- PageCatalogPart.cs
- DataViewSetting.cs
- ForAllOperator.cs
- HtmlProps.cs
- BindingContext.cs
- WebPartPersonalization.cs
- RegistrySecurity.cs
- DataPagerFieldCollection.cs
- XmlNamedNodeMap.cs
- DropSource.cs
- TextDecoration.cs
- FormsAuthenticationEventArgs.cs
- OrderedDictionary.cs
- Thickness.cs
- InsufficientMemoryException.cs
- LineBreak.cs
- Ref.cs
- CrossContextChannel.cs
- ServiceSecurityAuditElement.cs
- SqlWebEventProvider.cs
- SelectionEditor.cs
- ObjectKeyFrameCollection.cs
- MsmqIntegrationOutputChannel.cs
- X509Utils.cs
- BaseProcessor.cs