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
- VScrollProperties.cs
- BufferedOutputAsyncStream.cs
- ResourceManagerWrapper.cs
- Maps.cs
- OutputScope.cs
- ByteArrayHelperWithString.cs
- SafeNativeMethodsCLR.cs
- CodeBlockBuilder.cs
- ConstraintCollection.cs
- TabControlCancelEvent.cs
- ValueProviderWrapper.cs
- XmlSchemaSimpleContent.cs
- URLBuilder.cs
- StylusEventArgs.cs
- PenThreadWorker.cs
- StylusButtonEventArgs.cs
- PEFileReader.cs
- RuntimeUtils.cs
- MessageSecurityOverMsmq.cs
- HttpHandlerActionCollection.cs
- XmlSchemaFacet.cs
- FrameworkElementFactoryMarkupObject.cs
- CodeRegionDirective.cs
- ModelPropertyCollectionImpl.cs
- GenericIdentity.cs
- Clipboard.cs
- ImageField.cs
- OutputWindow.cs
- ObjectItemAssemblyLoader.cs
- ContextInformation.cs
- MetaModel.cs
- UnionExpr.cs
- XmlArrayItemAttribute.cs
- FixedDocumentSequencePaginator.cs
- ContractCodeDomInfo.cs
- WindowsStatusBar.cs
- ChoiceConverter.cs
- CodeActivityContext.cs
- ChangeNode.cs
- Constraint.cs
- ContainerUtilities.cs
- TextAdaptor.cs
- AssemblyInfo.cs
- SuppressedPackageProperties.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- MimeWriter.cs
- WebCategoryAttribute.cs
- ModelVisual3D.cs
- NavigationEventArgs.cs
- AdornerPresentationContext.cs
- XmlDataContract.cs
- FieldToken.cs
- MaterialGroup.cs
- Sql8ExpressionRewriter.cs
- Misc.cs
- HierarchicalDataBoundControlAdapter.cs
- SHA256.cs
- FixedHyperLink.cs
- BrowserTree.cs
- ListItemConverter.cs
- Transform.cs
- MarkupExtensionSerializer.cs
- Int32RectConverter.cs
- SspiWrapper.cs
- WorkflowServiceAttributesTypeConverter.cs
- StylusPointProperties.cs
- Underline.cs
- WindowsToolbarAsMenu.cs
- ConfigXmlSignificantWhitespace.cs
- GraphicsContext.cs
- ProfilePropertyNameValidator.cs
- SessionStateSection.cs
- NativeActivityAbortContext.cs
- WebEvents.cs
- ProcessRequestArgs.cs
- BindUriHelper.cs
- AddInAttribute.cs
- StrongNameMembershipCondition.cs
- Scene3D.cs
- DbReferenceCollection.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- Button.cs
- HtmlMobileTextWriter.cs
- FunctionQuery.cs
- QuaternionAnimation.cs
- ControlPropertyNameConverter.cs
- BrowserCapabilitiesFactory35.cs
- HScrollProperties.cs
- XmlSecureResolver.cs
- URIFormatException.cs
- ListViewSortEventArgs.cs
- DataGridViewCellConverter.cs
- DES.cs
- DropShadowBitmapEffect.cs
- DockPanel.cs
- safesecurityhelperavalon.cs
- FastEncoder.cs
- SiblingIterators.cs
- ValidationUtility.cs
- EventRouteFactory.cs