e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
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;
|
|
}
|
|
|
|
}
|
|
}
|