82 lines
3.7 KiB
C#
82 lines
3.7 KiB
C#
|
//------------------------------------------------------------------------------
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
namespace System.ServiceModel.Configuration
|
||
|
{
|
||
|
using System.Configuration;
|
||
|
using System.ServiceModel.Channels;
|
||
|
using System.Globalization;
|
||
|
using System.Net;
|
||
|
using System.Net.Security;
|
||
|
using System.Security.Authentication.ExtendedProtection.Configuration;
|
||
|
using System.ServiceModel;
|
||
|
using System.ServiceModel.Security;
|
||
|
using System.ComponentModel;
|
||
|
|
||
|
public sealed partial class WSHttpTransportSecurityElement : ServiceModelConfigurationElement
|
||
|
{
|
||
|
[ConfigurationProperty(ConfigurationStrings.ClientCredentialType, DefaultValue = HttpClientCredentialType.Windows)]
|
||
|
[ServiceModelEnumValidator(typeof(HttpClientCredentialTypeHelper))]
|
||
|
public HttpClientCredentialType ClientCredentialType
|
||
|
{
|
||
|
get { return (HttpClientCredentialType)base[ConfigurationStrings.ClientCredentialType]; }
|
||
|
set { base[ConfigurationStrings.ClientCredentialType] = value; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.ProxyCredentialType, DefaultValue = HttpTransportSecurity.DefaultProxyCredentialType)]
|
||
|
[ServiceModelEnumValidator(typeof(HttpProxyCredentialTypeHelper))]
|
||
|
public HttpProxyCredentialType ProxyCredentialType
|
||
|
{
|
||
|
get { return (HttpProxyCredentialType)base[ConfigurationStrings.ProxyCredentialType]; }
|
||
|
set { base[ConfigurationStrings.ProxyCredentialType] = value; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.ExtendedProtectionPolicy)]
|
||
|
public ExtendedProtectionPolicyElement ExtendedProtectionPolicy
|
||
|
{
|
||
|
get { return (ExtendedProtectionPolicyElement)base[ConfigurationStrings.ExtendedProtectionPolicy]; }
|
||
|
private set { base[ConfigurationStrings.ExtendedProtectionPolicy] = value; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(ConfigurationStrings.Realm, DefaultValue = HttpTransportSecurity.DefaultRealm)]
|
||
|
[StringValidator(MinLength = 0)]
|
||
|
public string Realm
|
||
|
{
|
||
|
get { return (string)base[ConfigurationStrings.Realm]; }
|
||
|
set
|
||
|
{
|
||
|
if (String.IsNullOrEmpty(value))
|
||
|
{
|
||
|
value = String.Empty;
|
||
|
}
|
||
|
base[ConfigurationStrings.Realm] = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
internal void ApplyConfiguration(HttpTransportSecurity security)
|
||
|
{
|
||
|
if (security == null)
|
||
|
{
|
||
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("security");
|
||
|
}
|
||
|
security.ClientCredentialType = this.ClientCredentialType;
|
||
|
security.ProxyCredentialType = this.ProxyCredentialType;
|
||
|
security.Realm = this.Realm;
|
||
|
security.ExtendedProtectionPolicy = ChannelBindingUtility.BuildPolicy(this.ExtendedProtectionPolicy);
|
||
|
}
|
||
|
|
||
|
internal void InitializeFrom(HttpTransportSecurity security)
|
||
|
{
|
||
|
if (security == null)
|
||
|
{
|
||
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("security");
|
||
|
}
|
||
|
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ClientCredentialType, security.ClientCredentialType);
|
||
|
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ProxyCredentialType, security.ProxyCredentialType);
|
||
|
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.Realm, security.Realm);
|
||
|
ChannelBindingUtility.InitializeFrom(security.ExtendedProtectionPolicy, this.ExtendedProtectionPolicy);
|
||
|
}
|
||
|
}
|
||
|
}
|