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
- MaterialGroup.cs
- ConnectionProviderAttribute.cs
- EntityDataSourceContextDisposingEventArgs.cs
- SqlBuilder.cs
- PolyBezierSegment.cs
- CodeDelegateCreateExpression.cs
- PingOptions.cs
- GridSplitter.cs
- MapPathBasedVirtualPathProvider.cs
- BitmapEffectDrawingContextState.cs
- MyContact.cs
- PrimarySelectionGlyph.cs
- ConditionCollection.cs
- ArgumentsParser.cs
- Mutex.cs
- SourceChangedEventArgs.cs
- TemplatedWizardStep.cs
- FormatVersion.cs
- UserControl.cs
- PointHitTestParameters.cs
- AssociationSet.cs
- ExpressionEditorAttribute.cs
- ReferenceService.cs
- StatusStrip.cs
- NetPipeSection.cs
- PlainXmlWriter.cs
- SqlParameterCollection.cs
- WebControlAdapter.cs
- ConfigXmlComment.cs
- WebMessageEncoderFactory.cs
- NumberAction.cs
- HostingPreferredMapPath.cs
- ellipse.cs
- TreeViewBindingsEditor.cs
- SignedInfo.cs
- DiscoveryClientBindingElement.cs
- ResXResourceWriter.cs
- AmbiguousMatchException.cs
- DeviceContext.cs
- ModifiableIteratorCollection.cs
- InvalidFilterCriteriaException.cs
- SafeNativeMethods.cs
- PartialTrustHelpers.cs
- QueryResult.cs
- Rules.cs
- Polyline.cs
- TrustLevelCollection.cs
- DeclarativeCatalogPart.cs
- VisualStyleElement.cs
- TransformedBitmap.cs
- SchemaNotation.cs
- ByteConverter.cs
- TransportSecurityProtocolFactory.cs
- CommonProperties.cs
- ComMethodElementCollection.cs
- WebPartCancelEventArgs.cs
- CodeGotoStatement.cs
- StoreAnnotationsMap.cs
- FragmentQuery.cs
- ProfilePropertyNameValidator.cs
- GeometryHitTestParameters.cs
- DbUpdateCommandTree.cs
- PointLight.cs
- Model3D.cs
- DataGridLinkButton.cs
- XsdBuilder.cs
- TextElementCollectionHelper.cs
- SyndicationDeserializer.cs
- SqlCommandBuilder.cs
- DecoderBestFitFallback.cs
- GrammarBuilderDictation.cs
- DataObjectFieldAttribute.cs
- HtmlShimManager.cs
- LoginNameDesigner.cs
- FastEncoderStatics.cs
- StateManagedCollection.cs
- METAHEADER.cs
- PropertyTabAttribute.cs
- SmiGettersStream.cs
- SqlDataRecord.cs
- SqlConnectionFactory.cs
- LinearGradientBrush.cs
- MemoryPressure.cs
- DWriteFactory.cs
- MdiWindowListItemConverter.cs
- FixedFindEngine.cs
- ServiceDescriptions.cs
- Merger.cs
- SystemPens.cs
- TextEditorTyping.cs
- TimeSpanStorage.cs
- CodeIndexerExpression.cs
- ObfuscateAssemblyAttribute.cs
- XmlSerializationReader.cs
- CultureTableRecord.cs
- COM2IDispatchConverter.cs
- PartialList.cs
- SRGSCompiler.cs
- SafeFileMappingHandle.cs
- TextEffect.cs