//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.Web.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.Globalization; using System.IO; using System.Text; using System.ComponentModel; using System.Security.Permissions; /* */ public sealed class MembershipSection : ConfigurationSection { private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propProviders; private static readonly ConfigurationProperty _propDefaultProvider; private static readonly ConfigurationProperty _propUserIsOnlineTimeWindow; private static readonly ConfigurationProperty _propHashAlgorithmType; static MembershipSection() { // Property initialization _propProviders = new ConfigurationProperty("providers", typeof(ProviderSettingsCollection), null, ConfigurationPropertyOptions.None); _propDefaultProvider = new ConfigurationProperty("defaultProvider", typeof(string), "AspNetSqlMembershipProvider", null, StdValidatorsAndConverters.NonEmptyStringValidator, ConfigurationPropertyOptions.None); _propUserIsOnlineTimeWindow = new ConfigurationProperty("userIsOnlineTimeWindow", typeof(TimeSpan), TimeSpan.FromMinutes(15.0), StdValidatorsAndConverters.TimeSpanMinutesConverter, new TimeSpanValidator(TimeSpan.FromMinutes(1), TimeSpan.MaxValue), ConfigurationPropertyOptions.None); _propHashAlgorithmType = new ConfigurationProperty("hashAlgorithmType", typeof(string), string.Empty, ConfigurationPropertyOptions.None); _properties = new ConfigurationPropertyCollection(); _properties.Add(_propProviders); _properties.Add(_propDefaultProvider); _properties.Add(_propUserIsOnlineTimeWindow); _properties.Add(_propHashAlgorithmType); } public MembershipSection() { } protected override ConfigurationPropertyCollection Properties { get { return _properties; } } [ConfigurationProperty("providers")] public ProviderSettingsCollection Providers { get { return (ProviderSettingsCollection)base[_propProviders]; } } [ConfigurationProperty("defaultProvider", DefaultValue = "AspNetSqlMembershipProvider")] [StringValidator(MinLength = 1)] public string DefaultProvider { get { return (string)base[_propDefaultProvider]; } set { base[_propDefaultProvider] = value; } } [ConfigurationProperty("hashAlgorithmType", DefaultValue = "")] public string HashAlgorithmType { get { return (string)base[_propHashAlgorithmType]; } set { base[_propHashAlgorithmType] = value; } } internal void ThrowHashAlgorithmException() { throw new ConfigurationErrorsException(SR.GetString(SR.Invalid_hash_algorithm_type, HashAlgorithmType), ElementInformation.Properties["hashAlgorithmType"].Source, ElementInformation.Properties["hashAlgorithmType"].LineNumber); } [ConfigurationProperty("userIsOnlineTimeWindow", DefaultValue = "00:15:00")] [TypeConverter(typeof(TimeSpanMinutesConverter))] [TimeSpanValidator(MinValueString = "00:01:00", MaxValueString = TimeSpanValidatorAttribute.TimeSpanMaxValue)] public TimeSpan UserIsOnlineTimeWindow { get { return (TimeSpan)base[_propUserIsOnlineTimeWindow]; } set { base[_propUserIsOnlineTimeWindow] = value; } } } // class MembershipSection }