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
- HttpListener.cs
- DataRowExtensions.cs
- OutputCacheSettings.cs
- HtmlTitle.cs
- MsmqSecureHashAlgorithm.cs
- DrawItemEvent.cs
- SuppressIldasmAttribute.cs
- GlobalDataBindingHandler.cs
- DesigntimeLicenseContext.cs
- SwitchAttribute.cs
- EntityContainerEmitter.cs
- RegexCompilationInfo.cs
- PerspectiveCamera.cs
- PagedDataSource.cs
- FamilyMap.cs
- AccessDataSourceDesigner.cs
- ComNativeDescriptor.cs
- BatchWriter.cs
- MonthCalendarDesigner.cs
- ReaderContextStackData.cs
- FormDesigner.cs
- ProcessHostFactoryHelper.cs
- EntityCommandExecutionException.cs
- DatatypeImplementation.cs
- ParserStreamGeometryContext.cs
- ControlFilterExpression.cs
- ServicePointManager.cs
- NotifyIcon.cs
- MatrixIndependentAnimationStorage.cs
- BrushMappingModeValidation.cs
- XmlCountingReader.cs
- SspiNegotiationTokenAuthenticator.cs
- StatusBar.cs
- ObjectDataSource.cs
- TextEffectResolver.cs
- SchemaElement.cs
- ToolCreatedEventArgs.cs
- DispatcherHooks.cs
- UnsafeNativeMethods.cs
- DataColumnMapping.cs
- XamlBuildProvider.cs
- OdbcDataReader.cs
- XmlFormatExtensionPrefixAttribute.cs
- BufferedGraphicsContext.cs
- IsolatedStorageException.cs
- XmlRawWriter.cs
- PrimarySelectionGlyph.cs
- Keyboard.cs
- LinearGradientBrush.cs
- FunctionQuery.cs
- UpdateCommand.cs
- MetaTable.cs
- Native.cs
- MulticastNotSupportedException.cs
- TagPrefixAttribute.cs
- RelatedCurrencyManager.cs
- AuthorizationRuleCollection.cs
- PrimitiveXmlSerializers.cs
- ConfigXmlText.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- EdmItemCollection.cs
- WebPartMenu.cs
- WebBrowserDocumentCompletedEventHandler.cs
- ProfileSection.cs
- CollectionType.cs
- BuildProvider.cs
- SvcMapFileLoader.cs
- TCPClient.cs
- HistoryEventArgs.cs
- SecurityPermission.cs
- GridViewRowCollection.cs
- SchemaTableColumn.cs
- LinqDataSourceValidationException.cs
- WindowsSlider.cs
- XPathScanner.cs
- EntityClassGenerator.cs
- CompilerGeneratedAttribute.cs
- CustomWebEventKey.cs
- SessionStateSection.cs
- InheritanceContextHelper.cs
- GlyphRunDrawing.cs
- PKCS1MaskGenerationMethod.cs
- Pen.cs
- HttpConfigurationSystem.cs
- ActivityPreviewDesigner.cs
- MediaContextNotificationWindow.cs
- StringAnimationBase.cs
- ServiceDesigner.xaml.cs
- RuntimeConfigLKG.cs
- ThreadNeutralSemaphore.cs
- WeakReadOnlyCollection.cs
- Quaternion.cs
- AsyncSerializedWorker.cs
- HostingEnvironmentException.cs
- IPCCacheManager.cs
- ContentPropertyAttribute.cs
- EventPropertyMap.cs
- DataBindingCollection.cs
- HashMembershipCondition.cs
- TextFragmentEngine.cs