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
- ArgumentException.cs
- HttpWebRequest.cs
- AppDomain.cs
- ServiceModelActivationSectionGroup.cs
- PermissionSet.cs
- InstanceDataCollectionCollection.cs
- Filter.cs
- PointKeyFrameCollection.cs
- DBParameter.cs
- Msec.cs
- PresentationAppDomainManager.cs
- ToolStripDropDown.cs
- UnsafeNativeMethods.cs
- ObjectListDataBindEventArgs.cs
- CircleHotSpot.cs
- MenuBase.cs
- DoubleCollection.cs
- TemplateControl.cs
- Attributes.cs
- CoTaskMemSafeHandle.cs
- ChannelDispatcherCollection.cs
- ClientBuildManager.cs
- SoapMessage.cs
- GeometryCombineModeValidation.cs
- HitTestFilterBehavior.cs
- Html32TextWriter.cs
- XpsViewerException.cs
- StrokeFIndices.cs
- Convert.cs
- TraceContextEventArgs.cs
- UpdateException.cs
- SoapTypeAttribute.cs
- Timeline.cs
- XmlToDatasetMap.cs
- ChannelPoolSettings.cs
- ConfigurationPropertyCollection.cs
- ObjectQueryState.cs
- TheQuery.cs
- TableStyle.cs
- GetPageNumberCompletedEventArgs.cs
- RawContentTypeMapper.cs
- ResourceManagerWrapper.cs
- Enlistment.cs
- SimpleRecyclingCache.cs
- QuaternionKeyFrameCollection.cs
- MaxMessageSizeStream.cs
- XmlArrayItemAttributes.cs
- LinqDataSourceHelper.cs
- EntityAdapter.cs
- StylusButton.cs
- FormClosedEvent.cs
- FormsAuthenticationModule.cs
- DataBoundLiteralControl.cs
- RowUpdatedEventArgs.cs
- Common.cs
- TrackingStringDictionary.cs
- AuthorizationRule.cs
- ProxyGenerator.cs
- Stroke2.cs
- ResourceDictionary.cs
- InheritablePropertyChangeInfo.cs
- PackageFilter.cs
- OdbcHandle.cs
- CommandSet.cs
- XmlSchemaValidationException.cs
- RtfControls.cs
- LinearGradientBrush.cs
- EventDescriptor.cs
- AncillaryOps.cs
- BreakRecordTable.cs
- WaitHandleCannotBeOpenedException.cs
- PropertyRecord.cs
- XmlStringTable.cs
- Bezier.cs
- RuntimeVariableList.cs
- XpsThumbnail.cs
- RelatedView.cs
- MethodAccessException.cs
- ObjectRef.cs
- Grant.cs
- XmlCodeExporter.cs
- XslAst.cs
- DetailsViewDeleteEventArgs.cs
- PeerReferralPolicy.cs
- KeyConverter.cs
- MarkupProperty.cs
- CryptoApi.cs
- LicenseManager.cs
- DataGridViewImageCell.cs
- BypassElementCollection.cs
- DrawItemEvent.cs
- InternalControlCollection.cs
- Boolean.cs
- SQLString.cs
- CryptoStream.cs
- SessionStateContainer.cs
- MimeFormatter.cs
- ThreadInterruptedException.cs
- EntityStoreSchemaFilterEntry.cs
- TreeIterators.cs