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