Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / HttpTransportSecurity.cs / 1 / HttpTransportSecurity.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel { using System; using System.ServiceModel.Channels; using System.ServiceModel.Security; using System.Net; using System.Net.Security; public sealed class HttpTransportSecurity { internal const HttpClientCredentialType DefaultClientCredentialType = HttpClientCredentialType.None; internal const HttpProxyCredentialType DefaultProxyCredentialType = HttpProxyCredentialType.None; internal const string DefaultRealm = System.ServiceModel.Channels.HttpTransportDefaults.Realm; HttpClientCredentialType clientCredentialType; HttpProxyCredentialType proxyCredentialType; string realm; internal HttpTransportSecurity() { this.clientCredentialType = DefaultClientCredentialType; this.proxyCredentialType = DefaultProxyCredentialType; this.realm = DefaultRealm; } public HttpClientCredentialType ClientCredentialType { get { return this.clientCredentialType; } set { if (!HttpClientCredentialTypeHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.clientCredentialType = value; } } public HttpProxyCredentialType ProxyCredentialType { get { return this.proxyCredentialType; } set { if (!HttpProxyCredentialTypeHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.proxyCredentialType = value; } } public string Realm { get { return this.realm; } set { this.realm = value; } } internal void ConfigureTransportProtectionOnly(HttpsTransportBindingElement https) { DisableAuthentication(https); https.RequireClientCertificate = false; } void ConfigureAuthentication(HttpTransportBindingElement http) { http.AuthenticationScheme = HttpClientCredentialTypeHelper.MapToAuthenticationScheme(this.clientCredentialType); http.ProxyAuthenticationScheme = HttpProxyCredentialTypeHelper.MapToAuthenticationScheme(this.proxyCredentialType); http.Realm = this.Realm; } static void ConfigureAuthentication(HttpTransportBindingElement http, HttpTransportSecurity transportSecurity) { transportSecurity.clientCredentialType = HttpClientCredentialTypeHelper.MapToClientCredentialType(http.AuthenticationScheme); transportSecurity.proxyCredentialType = HttpProxyCredentialTypeHelper.MapToProxyCredentialType(http.ProxyAuthenticationScheme); transportSecurity.Realm = http.Realm; } void DisableAuthentication(HttpTransportBindingElement http) { http.AuthenticationScheme = AuthenticationSchemes.Anonymous; http.ProxyAuthenticationScheme = AuthenticationSchemes.Anonymous; http.Realm = DefaultRealm; } static bool IsDisabledAuthentication(HttpTransportBindingElement http) { return http.AuthenticationScheme == AuthenticationSchemes.Anonymous && http.ProxyAuthenticationScheme == AuthenticationSchemes.Anonymous && http.Realm == DefaultRealm; } internal void ConfigureTransportProtectionAndAuthentication(HttpsTransportBindingElement https) { ConfigureAuthentication(https); https.RequireClientCertificate = (this.clientCredentialType == HttpClientCredentialType.Certificate); } internal static void ConfigureTransportProtectionAndAuthentication(HttpsTransportBindingElement https, HttpTransportSecurity transportSecurity) { ConfigureAuthentication(https, transportSecurity); if (https.RequireClientCertificate) transportSecurity.ClientCredentialType = HttpClientCredentialType.Certificate; } internal void ConfigureTransportAuthentication(HttpTransportBindingElement http) { if (this.clientCredentialType == HttpClientCredentialType.Certificate) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.CertificateUnsupportedForHttpTransportCredentialOnly))); } ConfigureAuthentication(http); } internal static bool IsConfiguredTransportAuthentication(HttpTransportBindingElement http, HttpTransportSecurity transportSecurity) { if (HttpClientCredentialTypeHelper.MapToClientCredentialType(http.AuthenticationScheme) == HttpClientCredentialType.Certificate) return false; ConfigureAuthentication(http, transportSecurity); return true; } internal void DisableTransportAuthentication(HttpTransportBindingElement http) { DisableAuthentication(http); } internal static bool IsDisabledTransportAuthentication(HttpTransportBindingElement http) { return IsDisabledAuthentication(http); } } } // 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
- TextChange.cs
- CodeEntryPointMethod.cs
- designeractionbehavior.cs
- FixedDocumentSequencePaginator.cs
- DetailsViewModeEventArgs.cs
- IERequestCache.cs
- DiscoveryViaBehavior.cs
- MulticastOption.cs
- ResourceReferenceKeyNotFoundException.cs
- Trace.cs
- TypeConverters.cs
- ReadOnlyNameValueCollection.cs
- ModelPropertyDescriptor.cs
- TextBox.cs
- ListBoxAutomationPeer.cs
- SHA1CryptoServiceProvider.cs
- MemberAssignmentAnalysis.cs
- IncrementalReadDecoders.cs
- ColorMap.cs
- OracleConnectionString.cs
- DES.cs
- PropertyItem.cs
- ACE.cs
- DecimalConverter.cs
- SqlGatherConsumedAliases.cs
- EditorPartDesigner.cs
- StateWorkerRequest.cs
- AssociatedControlConverter.cs
- ToolBarDesigner.cs
- View.cs
- ToolStripDropDownItem.cs
- ApplicationSecurityInfo.cs
- AudioStateChangedEventArgs.cs
- PropertyDescriptor.cs
- CheckPair.cs
- TypeSystemProvider.cs
- DataList.cs
- X509UI.cs
- RightNameExpirationInfoPair.cs
- XhtmlTextWriter.cs
- DBConcurrencyException.cs
- CachingHintValidation.cs
- RegisteredExpandoAttribute.cs
- DataSourceBooleanViewSchemaConverter.cs
- PropertyToken.cs
- ColumnCollection.cs
- SortQuery.cs
- NumberFormatInfo.cs
- SqlMetaData.cs
- WriteFileContext.cs
- IOThreadScheduler.cs
- DispatcherEventArgs.cs
- PropertyReferenceExtension.cs
- UidManager.cs
- PartialArray.cs
- EntitySqlQueryCacheKey.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- DataError.cs
- KeyGestureValueSerializer.cs
- basecomparevalidator.cs
- OpCopier.cs
- Crypto.cs
- CustomExpression.cs
- PropertyGeneratedEventArgs.cs
- RawUIStateInputReport.cs
- messageonlyhwndwrapper.cs
- TextRangeEditLists.cs
- ControlValuePropertyAttribute.cs
- ServiceRouteHandler.cs
- SessionStateSection.cs
- WindowsListViewSubItem.cs
- RoleGroupCollection.cs
- DataRelationPropertyDescriptor.cs
- TiffBitmapEncoder.cs
- ManagementObject.cs
- OracleConnectionString.cs
- ConfigurationFileMap.cs
- StrokeNodeData.cs
- RegisteredArrayDeclaration.cs
- GPStream.cs
- XmlBinaryReader.cs
- ConsoleKeyInfo.cs
- LogLogRecordEnumerator.cs
- Rotation3DKeyFrameCollection.cs
- Byte.cs
- WebEvents.cs
- DataServices.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- CultureInfo.cs
- Point3DKeyFrameCollection.cs
- MouseWheelEventArgs.cs
- WebPartVerb.cs
- FontInfo.cs
- BuildResultCache.cs
- RC2CryptoServiceProvider.cs
- GroupBox.cs
- GradientStop.cs
- DataContractSerializerSection.cs
- EDesignUtil.cs
- VariableQuery.cs