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
- StylusSystemGestureEventArgs.cs
- DataFormat.cs
- WebPartMinimizeVerb.cs
- SourceLineInfo.cs
- HwndSource.cs
- LocationReferenceValue.cs
- XsdCachingReader.cs
- PeerInvitationResponse.cs
- DateTimeOffset.cs
- QueryOpeningEnumerator.cs
- UIPermission.cs
- XpsInterleavingPolicy.cs
- CommentGlyph.cs
- StringResourceManager.cs
- TraceListeners.cs
- DataPagerCommandEventArgs.cs
- UriTemplateTable.cs
- CharacterHit.cs
- OleDbParameterCollection.cs
- RemotingServices.cs
- MaskInputRejectedEventArgs.cs
- HTMLTextWriter.cs
- TriggerCollection.cs
- ResourceDictionary.cs
- NavigationProperty.cs
- TraceContext.cs
- QuotedStringWriteStateInfo.cs
- UnknownBitmapDecoder.cs
- SqlDataSourceAdvancedOptionsForm.cs
- ListBindingConverter.cs
- TreeNodeBindingCollection.cs
- GenericTypeParameterBuilder.cs
- CreateUserErrorEventArgs.cs
- BadImageFormatException.cs
- UniqueSet.cs
- SchemaMapping.cs
- QueueProcessor.cs
- DataChangedEventManager.cs
- Viewport3DAutomationPeer.cs
- SpotLight.cs
- ComponentChangingEvent.cs
- SchemaNamespaceManager.cs
- WebPartVerbsEventArgs.cs
- CapiSafeHandles.cs
- LongValidator.cs
- PostBackOptions.cs
- CapabilitiesAssignment.cs
- CompositeFontInfo.cs
- ConfigsHelper.cs
- DataGridViewRowStateChangedEventArgs.cs
- TreeNodeEventArgs.cs
- ModifiableIteratorCollection.cs
- mediaeventshelper.cs
- MaterialCollection.cs
- KerberosRequestorSecurityTokenAuthenticator.cs
- IssuedTokenClientElement.cs
- TypeUnloadedException.cs
- CodeDefaultValueExpression.cs
- MethodCallConverter.cs
- SignatureResourceHelper.cs
- SimpleType.cs
- ResetableIterator.cs
- ObjectAnimationUsingKeyFrames.cs
- TextRunTypographyProperties.cs
- RegexStringValidatorAttribute.cs
- SchemaType.cs
- DbModificationClause.cs
- DisplayMemberTemplateSelector.cs
- DefaultAsyncDataDispatcher.cs
- Literal.cs
- HostProtectionException.cs
- CompilationUtil.cs
- SupportsEventValidationAttribute.cs
- CalendarAutoFormatDialog.cs
- CapabilitiesState.cs
- ListBoxAutomationPeer.cs
- URLString.cs
- IList.cs
- X509Utils.cs
- IBuiltInEvidence.cs
- BaseCodeDomTreeGenerator.cs
- CompressStream.cs
- ElementsClipboardData.cs
- EncodedStreamFactory.cs
- TreeNodeCollection.cs
- TextElement.cs
- InfoCardRSACryptoProvider.cs
- WorkflowOperationErrorHandler.cs
- Vector3DKeyFrameCollection.cs
- FunctionImportElement.cs
- MetadataAssemblyHelper.cs
- XmlCharCheckingWriter.cs
- DbParameterCollectionHelper.cs
- GridViewActionList.cs
- DataRelationCollection.cs
- TrustLevelCollection.cs
- ColumnCollection.cs
- _LoggingObject.cs
- Claim.cs
- StrokeDescriptor.cs