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; } } }