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
- EpmSyndicationContentSerializer.cs
- DataContractSerializerElement.cs
- XmlWhitespace.cs
- ProfileServiceManager.cs
- SimpleHandlerBuildProvider.cs
- SourceElementsCollection.cs
- ColorMap.cs
- SrgsDocument.cs
- InvokeMethod.cs
- XslTransform.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- Cursors.cs
- WindowsStreamSecurityBindingElement.cs
- ListCollectionView.cs
- Token.cs
- recordstatescratchpad.cs
- BufferBuilder.cs
- PersonalizationDictionary.cs
- WaitHandleCannotBeOpenedException.cs
- ResourceKey.cs
- PeerIPHelper.cs
- ArrayExtension.cs
- ControlPropertyNameConverter.cs
- XmlValueConverter.cs
- BitmapMetadataBlob.cs
- OutputCacheProfileCollection.cs
- CodeAssignStatement.cs
- AddressingProperty.cs
- TypeSystem.cs
- SafeRightsManagementQueryHandle.cs
- AssociationType.cs
- XmlUtil.cs
- DataBoundControlHelper.cs
- ComponentChangingEvent.cs
- ReadOnlyPropertyMetadata.cs
- DelegateSerializationHolder.cs
- ImageListDesigner.cs
- DataConnectionHelper.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- TreeNodeStyleCollection.cs
- StylusCaptureWithinProperty.cs
- Bitmap.cs
- RoleManagerSection.cs
- DataGridViewBindingCompleteEventArgs.cs
- RadioButtonList.cs
- NavigationEventArgs.cs
- PrinterResolution.cs
- TextSelectionHighlightLayer.cs
- WebPartEventArgs.cs
- ProfilePropertyNameValidator.cs
- UserPersonalizationStateInfo.cs
- DataGridViewColumnCollection.cs
- TriggerCollection.cs
- LinqDataView.cs
- ProfileSection.cs
- XsltLibrary.cs
- RootBuilder.cs
- WebPartDisplayModeEventArgs.cs
- DurableTimerExtension.cs
- TimeZoneNotFoundException.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- FixedSOMPageConstructor.cs
- PingReply.cs
- AspNetRouteServiceHttpHandler.cs
- AttributeQuery.cs
- WebServiceParameterData.cs
- LocalizabilityAttribute.cs
- CodeAccessSecurityEngine.cs
- TypeElement.cs
- QuaternionRotation3D.cs
- AnnotationHelper.cs
- FontTypeConverter.cs
- XmlCustomFormatter.cs
- CodeExpressionCollection.cs
- XmlSchemaGroupRef.cs
- ADMembershipProvider.cs
- Walker.cs
- DefaultBinder.cs
- RuntimeEnvironment.cs
- securitycriticaldataClass.cs
- NotSupportedException.cs
- InvokeProviderWrapper.cs
- MultipleFilterMatchesException.cs
- InputBinding.cs
- SendMailErrorEventArgs.cs
- Model3D.cs
- XmlKeywords.cs
- OwnerDrawPropertyBag.cs
- OdbcHandle.cs
- OleStrCAMarshaler.cs
- GeometryDrawing.cs
- TrackBarDesigner.cs
- DataStorage.cs
- CodeCatchClause.cs
- TemplateControl.cs
- HttpCapabilitiesEvaluator.cs
- SqlMethods.cs
- CodeMemberProperty.cs
- SessionEndingCancelEventArgs.cs
- uribuilder.cs