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
- IResourceProvider.cs
- AssemblyUtil.cs
- ResourceProviderFactory.cs
- CallbackHandler.cs
- UserInitiatedNavigationPermission.cs
- Win32MouseDevice.cs
- MembershipValidatePasswordEventArgs.cs
- TextFormatter.cs
- Interlocked.cs
- BooleanToVisibilityConverter.cs
- MissingSatelliteAssemblyException.cs
- RightsManagementEncryptionTransform.cs
- MetafileEditor.cs
- RichTextBox.cs
- ArraySubsetEnumerator.cs
- ScriptingSectionGroup.cs
- NameValueFileSectionHandler.cs
- TreeView.cs
- Queue.cs
- QueryExtender.cs
- XmlConverter.cs
- NetMsmqSecurityMode.cs
- ConstraintCollection.cs
- ResponseStream.cs
- ConfigXmlWhitespace.cs
- DelegateBodyWriter.cs
- MissingSatelliteAssemblyException.cs
- SqlDataAdapter.cs
- StringCollection.cs
- ObjectListItem.cs
- PolyLineSegment.cs
- WebExceptionStatus.cs
- HttpDigestClientElement.cs
- SafePEFileHandle.cs
- SafeRegistryHandle.cs
- HtmlShimManager.cs
- AuthorizationRule.cs
- webbrowsersite.cs
- SchemaAttDef.cs
- CompositeCollectionView.cs
- OleDbConnectionInternal.cs
- AdvancedBindingEditor.cs
- CommandExpr.cs
- TagPrefixAttribute.cs
- MetadataReference.cs
- IBuiltInEvidence.cs
- SoapProtocolReflector.cs
- XmlText.cs
- LineSegment.cs
- ScrollPattern.cs
- FunctionImportElement.cs
- DrawingCollection.cs
- Knowncolors.cs
- BuildProvidersCompiler.cs
- RemoteArgument.cs
- SqlEnums.cs
- InvalidFilterCriteriaException.cs
- OracleFactory.cs
- PropertyPushdownHelper.cs
- ServiceChannelManager.cs
- ByteStreamMessageEncoder.cs
- ComAdminInterfaces.cs
- OleDbWrapper.cs
- CriticalExceptions.cs
- TraceUtils.cs
- PlanCompilerUtil.cs
- ListViewItemEventArgs.cs
- Facet.cs
- DataGridHeaderBorder.cs
- ToolStripStatusLabel.cs
- PartialCachingAttribute.cs
- Nodes.cs
- FileDataSourceCache.cs
- DataRowCollection.cs
- AmbiguousMatchException.cs
- ConfigurationStrings.cs
- WebBrowserPermission.cs
- LoginUtil.cs
- ItemType.cs
- ProfileSettings.cs
- WindowsIdentity.cs
- CodeLinePragma.cs
- SplitterCancelEvent.cs
- PersonalizationState.cs
- XmlSchemaIdentityConstraint.cs
- ConsoleKeyInfo.cs
- OletxCommittableTransaction.cs
- ObjectSet.cs
- TreeViewHitTestInfo.cs
- XmlnsCompatibleWithAttribute.cs
- HttpListenerException.cs
- HandledMouseEvent.cs
- RelationshipNavigation.cs
- RequestUriProcessor.cs
- ADConnectionHelper.cs
- Currency.cs
- KeyFrames.cs
- TypeElementCollection.cs
- RoutedEventArgs.cs
- ValueOfAction.cs