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
- WebRequestModuleElement.cs
- ObjectDataSourceMethodEventArgs.cs
- DefaultPrintController.cs
- EdmProperty.cs
- XmlNamedNodeMap.cs
- ISessionStateStore.cs
- WorkflowApplicationIdleEventArgs.cs
- DataTableCollection.cs
- DataGridViewRowConverter.cs
- TabControlEvent.cs
- ReadWriteSpinLock.cs
- ValueQuery.cs
- BrowserCapabilitiesCompiler.cs
- Int32Rect.cs
- DetailsViewDeletedEventArgs.cs
- TaskForm.cs
- OdbcParameter.cs
- XmlUnspecifiedAttribute.cs
- PingOptions.cs
- DeadCharTextComposition.cs
- SetIndexBinder.cs
- WebRequestModuleElementCollection.cs
- CacheEntry.cs
- ReadOnlyObservableCollection.cs
- WindowsSolidBrush.cs
- RowParagraph.cs
- EffectiveValueEntry.cs
- ParallelSeparator.xaml.cs
- EntityDataSourceViewSchema.cs
- NumberAction.cs
- CharKeyFrameCollection.cs
- HuffModule.cs
- ConditionCollection.cs
- GZipDecoder.cs
- WebPartTransformerCollection.cs
- PageSettings.cs
- URLString.cs
- ConsoleEntryPoint.cs
- InvokeBase.cs
- OdbcDataAdapter.cs
- UIElementParagraph.cs
- DetailsViewCommandEventArgs.cs
- CrossSiteScriptingValidation.cs
- sortedlist.cs
- GridItemCollection.cs
- DbProviderFactory.cs
- PathSegmentCollection.cs
- Size.cs
- BufferModesCollection.cs
- listitem.cs
- Predicate.cs
- CompoundFileIOPermission.cs
- MatrixAnimationUsingKeyFrames.cs
- Signature.cs
- ErrorTableItemStyle.cs
- RowSpanVector.cs
- SettingsAttributes.cs
- DocumentSchemaValidator.cs
- DuplicateWaitObjectException.cs
- Typography.cs
- SslStream.cs
- EditCommandColumn.cs
- CodePageEncoding.cs
- wmiprovider.cs
- ExecutionScope.cs
- GeneralTransform.cs
- CodeGenerator.cs
- PagesSection.cs
- TableStyle.cs
- PropertyEmitterBase.cs
- DynamicRenderer.cs
- PointCollectionConverter.cs
- Trace.cs
- Container.cs
- GridEntryCollection.cs
- SchemaSetCompiler.cs
- RenderOptions.cs
- InkPresenter.cs
- FlowchartDesigner.Helpers.cs
- CheckBoxField.cs
- PropertyNames.cs
- RecognizerInfo.cs
- UserPreferenceChangedEventArgs.cs
- SimplePropertyEntry.cs
- RequestUriProcessor.cs
- DeferredElementTreeState.cs
- Light.cs
- ISessionStateStore.cs
- UnsafeNativeMethodsCLR.cs
- FixedPageAutomationPeer.cs
- ProviderConnectionPointCollection.cs
- SqlConnectionManager.cs
- WindowsStartMenu.cs
- Avt.cs
- CheckBoxDesigner.cs
- VirtualizingStackPanel.cs
- BooleanProjectedSlot.cs
- AnnotationHelper.cs
- RewritingValidator.cs
- XmlNodeChangedEventArgs.cs