Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / HttpsTransportBindingElement.cs / 1 / HttpsTransportBindingElement.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Collections.Generic; using System.ServiceModel.Description; using System.Net; using System.Net.Security; using System.Runtime.Serialization; using System.Security.Cryptography.X509Certificates; using System.ServiceModel; using System.ServiceModel.Activation; using System.ServiceModel.Security; using System.Xml; public class HttpsTransportBindingElement : HttpTransportBindingElement, ITransportTokenAssertionProvider { bool requireClientCertificate; MessageSecurityVersion messageSecurityVersion; public HttpsTransportBindingElement() : base() { this.requireClientCertificate = TransportDefaults.RequireClientCertificate; } protected HttpsTransportBindingElement(HttpsTransportBindingElement elementToBeCloned) : base(elementToBeCloned) { this.requireClientCertificate = elementToBeCloned.requireClientCertificate; this.messageSecurityVersion = elementToBeCloned.messageSecurityVersion; } HttpsTransportBindingElement(HttpTransportBindingElement elementToBeCloned) : base(elementToBeCloned) { } public bool RequireClientCertificate { get { return this.requireClientCertificate; } set { this.requireClientCertificate = value; } } public override string Scheme { get { return "https"; } } public override BindingElement Clone() { return new HttpsTransportBindingElement(this); } internal override bool SupportsClientAuthenticationImpl { get { return (this.requireClientCertificate || base.SupportsClientAuthenticationImpl); } } internal override bool SupportsClientWindowsIdentityImpl { get { return (this.requireClientCertificate || base.SupportsClientWindowsIdentityImpl); } } internal override string WsdlTransportUri { get { return TransportPolicyConstants.HttpTransportUri; } } // In order to generate sp:HttpsToken with the right policy. // See CSD 3105 for detail. internal MessageSecurityVersion MessageSecurityVersion { get { return this.messageSecurityVersion; } set { if (value == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("value")); } this.messageSecurityVersion = value; } } public override IChannelFactoryBuildChannelFactory (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if(!this.CanBuildChannelFactory (context)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } return (IChannelFactory )(object)new HttpsChannelFactory(this, context); } public override IChannelListener BuildChannelListener (BindingContext context) { HttpChannelListener listener; if (typeof(TChannel) == typeof(IReplyChannel)) { listener = new HttpsChannelListener(this, context); } else { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } VirtualPathExtension.ApplyHostedContext(listener, context); return (IChannelListener )(object)listener; } internal static HttpsTransportBindingElement CreateFromHttpBindingElement(HttpTransportBindingElement elementToBeCloned) { return new HttpsTransportBindingElement(elementToBeCloned); } public override T GetProperty (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (typeof(T) == typeof(ISecurityCapabilities)) { return (T)(object)new SecurityCapabilities(SupportsClientAuthenticationImpl, true, SupportsClientWindowsIdentityImpl, ProtectionLevel.EncryptAndSign, ProtectionLevel.EncryptAndSign); } else { return base.GetProperty (context); } } internal override void OnExportPolicy(MetadataExporter exporter, PolicyConversionContext context) { base.OnExportPolicy(exporter, context); SecurityBindingElement.ExportPolicy(exporter, context); } internal override void OnImportPolicy(MetadataImporter importer, PolicyConversionContext policyContext) { base.OnImportPolicy(importer, policyContext); WSSecurityPolicy sp = null; if (WSSecurityPolicy.TryGetSecurityPolicyDriver(policyContext.GetBindingAssertions(), out sp)) sp.TryImportWsspHttpsTokenAssertion(importer, policyContext.GetBindingAssertions(), this); } #region ITransportTokenAssertionProvider Members public XmlElement GetTransportTokenAssertion() { return null; } #endregion } } // 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
- CodeTypeParameter.cs
- HiddenFieldPageStatePersister.cs
- DataGridViewCellStyleConverter.cs
- System.Data_BID.cs
- PropertyMapper.cs
- handlecollector.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DeferredRunTextReference.cs
- RulePatternOps.cs
- IdentityNotMappedException.cs
- SaveRecipientRequest.cs
- HitTestDrawingContextWalker.cs
- ValidationRuleCollection.cs
- DelegatingStream.cs
- CollectionType.cs
- ScriptResourceHandler.cs
- ListCollectionView.cs
- TableLayoutCellPaintEventArgs.cs
- ToolStripRenderEventArgs.cs
- ConsoleCancelEventArgs.cs
- XmlCharCheckingReader.cs
- VariableAction.cs
- DocumentViewerHelper.cs
- CapabilitiesAssignment.cs
- DESCryptoServiceProvider.cs
- ZoomPercentageConverter.cs
- CultureMapper.cs
- HtmlEmptyTagControlBuilder.cs
- ThreadPool.cs
- SmiEventStream.cs
- JavaScriptString.cs
- AxisAngleRotation3D.cs
- ProgressBarRenderer.cs
- Common.cs
- CatalogPartChrome.cs
- AccessDataSource.cs
- FormsAuthenticationModule.cs
- CodeCompileUnit.cs
- ConstraintManager.cs
- HealthMonitoringSectionHelper.cs
- DefaultPerformanceCounters.cs
- ScrollViewerAutomationPeer.cs
- EDesignUtil.cs
- WaitHandle.cs
- RowToFieldTransformer.cs
- DbExpressionBuilder.cs
- IriParsingElement.cs
- LazyTextWriterCreator.cs
- XslException.cs
- BoundingRectTracker.cs
- SafeHandles.cs
- InheritanceAttribute.cs
- AnnouncementEventArgs.cs
- SimpleLine.cs
- SystemNetHelpers.cs
- WebPartVerb.cs
- ProtocolsConfigurationHandler.cs
- ScriptManagerProxy.cs
- AbstractDataSvcMapFileLoader.cs
- WsdlParser.cs
- XamlHostingSection.cs
- TableDetailsRow.cs
- XmlSchemaFacet.cs
- PointCollectionConverter.cs
- DataBoundControl.cs
- CollectionChangedEventManager.cs
- DataDesignUtil.cs
- SwitchExpression.cs
- ListBase.cs
- TabControl.cs
- UnsafeCollabNativeMethods.cs
- xdrvalidator.cs
- ContextItemManager.cs
- DataSourceExpressionCollection.cs
- Vector3DConverter.cs
- ListViewInsertEventArgs.cs
- ActionItem.cs
- Win32.cs
- PointF.cs
- UriSection.cs
- CacheDict.cs
- OdbcHandle.cs
- AncillaryOps.cs
- DayRenderEvent.cs
- BoolExpression.cs
- DataKeyCollection.cs
- AssociatedControlConverter.cs
- IPEndPointCollection.cs
- ContainerUtilities.cs
- SQLInt32Storage.cs
- ListViewInsertedEventArgs.cs
- PathSegmentCollection.cs
- FileDialog.cs
- DeploymentSection.cs
- IntSecurity.cs
- Visitors.cs
- RegistryPermission.cs
- KnownTypesHelper.cs
- WebConfigurationHost.cs
- ProfileParameter.cs