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
- NgenServicingAttributes.cs
- KeyFrames.cs
- EncoderReplacementFallback.cs
- FunctionUpdateCommand.cs
- CharAnimationUsingKeyFrames.cs
- Container.cs
- HtmlButton.cs
- KeyPressEvent.cs
- Trigger.cs
- HelpProvider.cs
- KeyConverter.cs
- HttpCapabilitiesEvaluator.cs
- MailSettingsSection.cs
- XamlSerializationHelper.cs
- TabPage.cs
- LongTypeConverter.cs
- BackgroundFormatInfo.cs
- PerformanceCounter.cs
- OracleConnection.cs
- OAVariantLib.cs
- Rule.cs
- SourceFilter.cs
- MarkupWriter.cs
- ListControl.cs
- ZoneButton.cs
- Sentence.cs
- EnumValAlphaComparer.cs
- FontNameEditor.cs
- XmlSchemaImport.cs
- ParameterElementCollection.cs
- TextContainer.cs
- LongValidatorAttribute.cs
- EntryWrittenEventArgs.cs
- CorrelationManager.cs
- FloatUtil.cs
- WinFormsUtils.cs
- DbConvert.cs
- TriggerBase.cs
- InvalidOleVariantTypeException.cs
- TreeIterator.cs
- RightsManagementManager.cs
- StdValidatorsAndConverters.cs
- XPathParser.cs
- RelationshipNavigation.cs
- JsonWriter.cs
- RandomDelaySendsAsyncResult.cs
- ThreadInterruptedException.cs
- XmlSchemaInfo.cs
- PopOutPanel.cs
- AsyncPostBackErrorEventArgs.cs
- XmlAttributeProperties.cs
- WorkflowViewStateService.cs
- HttpPostLocalhostServerProtocol.cs
- XmlSchemaFacet.cs
- RootBrowserWindowAutomationPeer.cs
- ExpressionBuilderContext.cs
- XmlSchemaDocumentation.cs
- versioninfo.cs
- CodeTypeConstructor.cs
- InlinedAggregationOperator.cs
- DelegateBodyWriter.cs
- BindingBase.cs
- Content.cs
- CleanUpVirtualizedItemEventArgs.cs
- EntityType.cs
- ControlCachePolicy.cs
- ContainsRowNumberChecker.cs
- AndCondition.cs
- ZipIOFileItemStream.cs
- WebPartChrome.cs
- ListViewGroup.cs
- SqlExpander.cs
- ImageBrush.cs
- BidOverLoads.cs
- SerializerWriterEventHandlers.cs
- MsmqBindingFilter.cs
- PropertyFilterAttribute.cs
- HwndHostAutomationPeer.cs
- SynchronizationScope.cs
- CollectionCodeDomSerializer.cs
- PathTooLongException.cs
- UnmanagedHandle.cs
- SByteConverter.cs
- DataServiceQueryOfT.cs
- DeclarativeCatalogPart.cs
- SchemaElement.cs
- WindowsRegion.cs
- DocumentReference.cs
- RepeaterItem.cs
- Thread.cs
- ClientSettings.cs
- Assembly.cs
- GraphicsContext.cs
- CheckBoxFlatAdapter.cs
- OleStrCAMarshaler.cs
- DBDataPermissionAttribute.cs
- DataGrid.cs
- XXXOnTypeBuilderInstantiation.cs
- FeedUtils.cs
- TableRow.cs