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
- ColumnResizeUndoUnit.cs
- OnOperation.cs
- NumericUpDown.cs
- DSASignatureDeformatter.cs
- QilName.cs
- DataControlFieldHeaderCell.cs
- MappingSource.cs
- CellParaClient.cs
- DataServiceQueryOfT.cs
- Separator.cs
- ThicknessAnimationUsingKeyFrames.cs
- PageEventArgs.cs
- ResourcesBuildProvider.cs
- XmlObjectSerializerReadContext.cs
- SourceItem.cs
- WinInet.cs
- ipaddressinformationcollection.cs
- DatagridviewDisplayedBandsData.cs
- SmtpDigestAuthenticationModule.cs
- PassportAuthenticationEventArgs.cs
- DataFieldEditor.cs
- RecordManager.cs
- ExpandedWrapper.cs
- HttpHandler.cs
- ProxyGenerationError.cs
- BuildProviderAppliesToAttribute.cs
- InternalPermissions.cs
- ScriptingProfileServiceSection.cs
- TraceUtility.cs
- TranslateTransform3D.cs
- BackgroundFormatInfo.cs
- EncryptedKeyIdentifierClause.cs
- PreviewKeyDownEventArgs.cs
- CommentEmitter.cs
- ContextMarshalException.cs
- ManualResetEvent.cs
- DataGridTextBox.cs
- DynamicValueConverter.cs
- StackBuilderSink.cs
- MarkupExtensionParser.cs
- AutoResizedEvent.cs
- FixedTextSelectionProcessor.cs
- SafeRegistryHandle.cs
- ToolStripItemClickedEventArgs.cs
- CheckBoxRenderer.cs
- TreeIterator.cs
- PolicyUnit.cs
- DependencyProperty.cs
- JournalEntryListConverter.cs
- SqlProcedureAttribute.cs
- SendSecurityHeader.cs
- If.cs
- KeyInstance.cs
- BitmapPalette.cs
- Rijndael.cs
- DesignOnlyAttribute.cs
- XmlLanguage.cs
- ExceptionAggregator.cs
- AsyncStreamReader.cs
- MemberMaps.cs
- RecordBuilder.cs
- PageBuildProvider.cs
- AuthorizationSection.cs
- CustomErrorsSection.cs
- IsolatedStorage.cs
- input.cs
- CmsUtils.cs
- SyndicationDeserializer.cs
- DBAsyncResult.cs
- CalendarTable.cs
- ThicknessKeyFrameCollection.cs
- EventBindingService.cs
- BezierSegment.cs
- SingleResultAttribute.cs
- SocketAddress.cs
- SafeFileHandle.cs
- CompressedStack.cs
- PropertyStore.cs
- WebEventCodes.cs
- Bold.cs
- CompModSwitches.cs
- SupportingTokenListenerFactory.cs
- HelloOperation11AsyncResult.cs
- RegexWorker.cs
- SqlDataSourceCache.cs
- DataColumnMappingCollection.cs
- SettingsBase.cs
- FormsAuthenticationUser.cs
- XmlSchemaParticle.cs
- CssTextWriter.cs
- Compress.cs
- InfoCardRSACryptoProvider.cs
- ExpandSegment.cs
- XmlQueryOutput.cs
- OpenFileDialog.cs
- SafeFileMappingHandle.cs
- TreeViewTemplateSelector.cs
- ElementHost.cs
- DragCompletedEventArgs.cs
- MarshalByRefObject.cs