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
- SqlWriter.cs
- Clipboard.cs
- ListChangedEventArgs.cs
- UserControl.cs
- DesignerLoader.cs
- CachedFontFamily.cs
- RulePatternOps.cs
- InternalPermissions.cs
- HtmlCalendarAdapter.cs
- EntityDataSourceDataSelection.cs
- ComponentResourceManager.cs
- HtmlInputSubmit.cs
- Error.cs
- MessageBuilder.cs
- TextElementCollection.cs
- DataObjectFieldAttribute.cs
- ToolStripLocationCancelEventArgs.cs
- DesignerObject.cs
- ObjectReaderCompiler.cs
- Misc.cs
- EventLogReader.cs
- ProvidersHelper.cs
- DocumentSequence.cs
- LeaseManager.cs
- ObjectViewQueryResultData.cs
- BitmapCodecInfo.cs
- DataGridViewColumnDesigner.cs
- externdll.cs
- StreamResourceInfo.cs
- InvokeMethodActivity.cs
- Label.cs
- HtmlInputSubmit.cs
- QuaternionRotation3D.cs
- BaseDataBoundControl.cs
- SubMenuStyle.cs
- Memoizer.cs
- CharEnumerator.cs
- Thumb.cs
- DataGridTemplateColumn.cs
- WindowsListViewItemCheckBox.cs
- DSASignatureFormatter.cs
- WindowManager.cs
- BulletedList.cs
- RangeValuePattern.cs
- VoiceInfo.cs
- MemberExpression.cs
- SQLBoolean.cs
- MemberInfoSerializationHolder.cs
- TreeNodeSelectionProcessor.cs
- TreeNodeBinding.cs
- AsyncResult.cs
- QueryExpression.cs
- AssertHelper.cs
- Application.cs
- ObjectConverter.cs
- WeakEventManager.cs
- KeyInfo.cs
- SafeRightsManagementQueryHandle.cs
- SafeCryptoHandles.cs
- InternalDispatchObject.cs
- SimpleWorkerRequest.cs
- SessionEndingCancelEventArgs.cs
- CodeLabeledStatement.cs
- CellPartitioner.cs
- DtrList.cs
- LongAverageAggregationOperator.cs
- StrongTypingException.cs
- StreamHelper.cs
- Internal.cs
- DataMemberFieldConverter.cs
- ClientEventManager.cs
- SoundPlayer.cs
- SerialPort.cs
- DataGridViewCellCollection.cs
- SqlGenerator.cs
- ObjRef.cs
- DelegatingHeader.cs
- VerificationAttribute.cs
- ProtocolsSection.cs
- FolderBrowserDialog.cs
- PreProcessor.cs
- UserControl.cs
- ServiceDurableInstance.cs
- PropertyCondition.cs
- CommandManager.cs
- CodeEventReferenceExpression.cs
- WarningException.cs
- SignatureToken.cs
- AuthorizationRule.cs
- PrintPreviewDialog.cs
- SwitchLevelAttribute.cs
- LinqDataSourceSelectEventArgs.cs
- ColorBlend.cs
- RowTypeElement.cs
- FreezableDefaultValueFactory.cs
- Membership.cs
- QuaternionAnimationBase.cs
- OleDbTransaction.cs
- peernodeimplementation.cs
- StatusBarItem.cs