76 lines
2.8 KiB
C#
76 lines
2.8 KiB
C#
|
|
|||
|
namespace System.ServiceModel.Configuration
|
|||
|
{
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Configuration;
|
|||
|
using System.IdentityModel.Claims;
|
|||
|
using System.IdentityModel.Policy;
|
|||
|
using System.Net;
|
|||
|
using System.ServiceModel.Channels;
|
|||
|
using System.ServiceModel;
|
|||
|
using System.ServiceModel.Description;
|
|||
|
|
|||
|
public sealed partial class ServiceAuthenticationElement : BehaviorExtensionElement
|
|||
|
{
|
|||
|
public ServiceAuthenticationElement()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
[ConfigurationProperty(ConfigurationStrings.ServiceAuthenticationManagerType, DefaultValue = "")]
|
|||
|
[StringValidator(MinLength = 0)]
|
|||
|
public string ServiceAuthenticationManagerType
|
|||
|
{
|
|||
|
get { return (string)base[ConfigurationStrings.ServiceAuthenticationManagerType]; }
|
|||
|
set
|
|||
|
{
|
|||
|
if (String.IsNullOrEmpty(value))
|
|||
|
{
|
|||
|
value = String.Empty;
|
|||
|
}
|
|||
|
base[ConfigurationStrings.ServiceAuthenticationManagerType] = value;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[ConfigurationProperty(ConfigurationStrings.AuthenticationSchemes, DefaultValue = AuthenticationSchemes.None)]
|
|||
|
[StandardRuntimeFlagEnumValidator(typeof(AuthenticationSchemes))]
|
|||
|
public AuthenticationSchemes AuthenticationSchemes
|
|||
|
{
|
|||
|
get { return (AuthenticationSchemes)base[ConfigurationStrings.AuthenticationSchemes]; }
|
|||
|
set
|
|||
|
{
|
|||
|
base[ConfigurationStrings.AuthenticationSchemes] = value;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override Type BehaviorType
|
|||
|
{
|
|||
|
get { return typeof(ServiceAuthenticationBehavior); }
|
|||
|
}
|
|||
|
|
|||
|
protected internal override object CreateBehavior()
|
|||
|
{
|
|||
|
ServiceAuthenticationBehavior behavior = new ServiceAuthenticationBehavior();
|
|||
|
string serviceAuthenticationManagerType = this.ServiceAuthenticationManagerType;
|
|||
|
if (!String.IsNullOrEmpty(serviceAuthenticationManagerType))
|
|||
|
{
|
|||
|
Type type = Type.GetType(serviceAuthenticationManagerType, true);
|
|||
|
if (!typeof(ServiceAuthenticationManager).IsAssignableFrom(type))
|
|||
|
{
|
|||
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(
|
|||
|
SR.GetString(SR.ConfigInvalidServiceAuthenticationManagerType, serviceAuthenticationManagerType, typeof(ServiceAuthenticationManager))));
|
|||
|
}
|
|||
|
behavior.ServiceAuthenticationManager = (ServiceAuthenticationManager)Activator.CreateInstance(type);
|
|||
|
}
|
|||
|
|
|||
|
if (this.AuthenticationSchemes != AuthenticationSchemes.None)
|
|||
|
{
|
|||
|
behavior.AuthenticationSchemes = this.AuthenticationSchemes;
|
|||
|
}
|
|||
|
|
|||
|
return behavior;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|