1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
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;
}
}
}
|