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
- DoubleLink.cs
- NameTable.cs
- mda.cs
- MatrixTransform.cs
- ProtocolsSection.cs
- ConstraintStruct.cs
- CorrelationTokenInvalidatedHandler.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- StorageConditionPropertyMapping.cs
- ComponentSerializationService.cs
- SqlClientWrapperSmiStreamChars.cs
- PersonalizationStateQuery.cs
- UTF8Encoding.cs
- CroppedBitmap.cs
- MenuBase.cs
- InstalledVoice.cs
- ClientSideQueueItem.cs
- ExceptionHandler.cs
- UIElementIsland.cs
- DataTableReader.cs
- TraceSection.cs
- BinaryNode.cs
- RelatedPropertyManager.cs
- ToolboxItemAttribute.cs
- CacheAxisQuery.cs
- TextRunProperties.cs
- MemberDomainMap.cs
- ReflectionHelper.cs
- DataGridViewRowEventArgs.cs
- BuildProviderUtils.cs
- SettingsContext.cs
- ChannelBinding.cs
- MouseEvent.cs
- AlternateView.cs
- TypeElement.cs
- SupportingTokenDuplexChannel.cs
- Dictionary.cs
- UpdatePanelTrigger.cs
- FixedTextView.cs
- WindowsFormsSectionHandler.cs
- VisualStyleElement.cs
- latinshape.cs
- TCEAdapterGenerator.cs
- ScriptMethodAttribute.cs
- ObfuscationAttribute.cs
- DefaultBindingPropertyAttribute.cs
- PolicyException.cs
- ContentOnlyMessage.cs
- IHttpResponseInternal.cs
- ReceiveActivityDesigner.cs
- Choices.cs
- Tile.cs
- PersonalizationProviderCollection.cs
- SqlBulkCopyColumnMappingCollection.cs
- ClientEventManager.cs
- MouseGestureValueSerializer.cs
- XmlWriter.cs
- assemblycache.cs
- GrammarBuilderBase.cs
- ConfigurationValues.cs
- EditorZone.cs
- BuildProviderUtils.cs
- CompilerScopeManager.cs
- SelectedDatesCollection.cs
- XmlSortKeyAccumulator.cs
- TextCharacters.cs
- MethodToken.cs
- WebServiceFaultDesigner.cs
- TextLineBreak.cs
- QueryInterceptorAttribute.cs
- MatrixTransform3D.cs
- MapPathBasedVirtualPathProvider.cs
- HttpCacheVary.cs
- NoPersistHandle.cs
- loginstatus.cs
- OutArgumentConverter.cs
- ListViewTableCell.cs
- SettingsSection.cs
- EntityDataSourceConfigureObjectContext.cs
- DiagnosticStrings.cs
- RegisteredScript.cs
- LongSumAggregationOperator.cs
- StorageBasedPackageProperties.cs
- EntityPropertyMappingAttribute.cs
- XmlDataContract.cs
- mil_commands.cs
- RegistrySecurity.cs
- GridItemProviderWrapper.cs
- TableDesigner.cs
- CompilerParameters.cs
- HwndKeyboardInputProvider.cs
- CodeGotoStatement.cs
- AccessedThroughPropertyAttribute.cs
- TypeElement.cs
- IgnoreFlushAndCloseStream.cs
- SpinLock.cs
- EntityDataSourceUtil.cs
- IRCollection.cs
- BitmapDecoder.cs
- MessageSecurityTokenVersion.cs