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
- MessageEventSubscriptionService.cs
- sqlmetadatafactory.cs
- LinkLabelLinkClickedEvent.cs
- DesignerTransactionCloseEvent.cs
- OperationExecutionFault.cs
- BaseParaClient.cs
- HtmlTextViewAdapter.cs
- GcSettings.cs
- TextAnchor.cs
- OneOfElement.cs
- PostBackOptions.cs
- AutomationAttributeInfo.cs
- InternalConfigConfigurationFactory.cs
- DataException.cs
- activationcontext.cs
- LocalizableResourceBuilder.cs
- CompoundFileIOPermission.cs
- NumericExpr.cs
- EventSourceCreationData.cs
- UnsafeNativeMethodsMilCoreApi.cs
- RuntimeHelpers.cs
- ObjectTag.cs
- PartialArray.cs
- NullableConverter.cs
- LinqDataSourceValidationException.cs
- AuthorizationContext.cs
- ServiceDescriptions.cs
- DataRelationCollection.cs
- FigureParagraph.cs
- PersistenceTypeAttribute.cs
- DataGridCaption.cs
- SecurityAccessDeniedException.cs
- RedBlackList.cs
- Intellisense.cs
- RelationshipManager.cs
- contentDescriptor.cs
- DataReaderContainer.cs
- MasterPage.cs
- EventSourceCreationData.cs
- WrappedKeySecurityTokenParameters.cs
- CellPartitioner.cs
- Options.cs
- EmbeddedObject.cs
- CoTaskMemHandle.cs
- SystemEvents.cs
- BoolExpressionVisitors.cs
- FixedHighlight.cs
- BuildResultCache.cs
- DataGridViewAccessibleObject.cs
- MouseCaptureWithinProperty.cs
- BinaryReader.cs
- OwnerDrawPropertyBag.cs
- XmlCharacterData.cs
- EntityDataSourceDataSelection.cs
- WebProxyScriptElement.cs
- RuleSetBrowserDialog.cs
- PhysicalAddress.cs
- DynamicResourceExtensionConverter.cs
- HttpResponse.cs
- Int32Animation.cs
- QueryInterceptorAttribute.cs
- ISessionStateStore.cs
- ExtentCqlBlock.cs
- StringAttributeCollection.cs
- DbCommandDefinition.cs
- _AutoWebProxyScriptWrapper.cs
- CodeArrayCreateExpression.cs
- DoubleCollectionValueSerializer.cs
- DataGridViewRowConverter.cs
- WebScriptEnablingBehavior.cs
- SqlGenericUtil.cs
- PaintEvent.cs
- DataContext.cs
- MemberInfoSerializationHolder.cs
- ColorContext.cs
- DocobjHost.cs
- ViewCellSlot.cs
- RolePrincipal.cs
- TraceHandlerErrorFormatter.cs
- ConnectionPointGlyph.cs
- DPTypeDescriptorContext.cs
- XmlSchemaAttributeGroup.cs
- StrokeNodeOperations.cs
- SystemDiagnosticsSection.cs
- ADMembershipUser.cs
- HttpCookieCollection.cs
- HttpFormatExtensions.cs
- VirtualPath.cs
- NeutralResourcesLanguageAttribute.cs
- ExceptionHandlersDesigner.cs
- ScopelessEnumAttribute.cs
- SHA256.cs
- CircleEase.cs
- RegexCapture.cs
- ListViewSelectEventArgs.cs
- SafeSecurityHandles.cs
- OrthographicCamera.cs
- HyperLinkStyle.cs
- DataGridViewCellStyle.cs
- XmlQueryType.cs