asp.net – 来自web.config的Asp .Net自定义成员资格参数

前端之家收集整理的这篇文章主要介绍了asp.net – 来自web.config的Asp .Net自定义成员资格参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在为asp .net写一个自定义成员资格提供程序,而我遇到的问题是我不知道如何以与提供给标准asp .net成员资格提供者相同的方式向自定义成员资格提供者提供参数在web.config文件中,如密码长度.

解决方法

从MembershipProvider派生自己的类时,必须覆盖Initialize()方法,它具有以下签名:
public override void Initialize(string name,NameValueCollection config);

System.Collections.NameValueCollection是一个字典,您可以在其中找到web.config文件中编写的选项.这些选项的指定方式与指定“标准”提供程序的选项(作为属性)的方式相同.每个字典条目都具有属性名称的键,并且具有属性值(作为字符串)的值.

public  class MyMembershipProvider : MembershipProvider
{
    public override void Initialize(string name,NameValueCollection config)
    {
        base.Initialize(name,config);

        _enablePasswordReset = config.GetBoolean("enablePasswordReset",true);
    }
}

在我的例子中,GetBoolean()是一个在下面声明的扩展方法

public static bool GetBoolean(this NameValueCollection config,string valueName,bool? defaultValue)
{
    object obj = config[valueName];
    if (obj == null)
    {
        if (!defaultValue.HasValue)
            throw new WarningException("required field has not been specified.");

        return defaultValue.Value;
    }

    bool value = defaultValue;
    if (obj is Boolean)
        return (bool)obj;

    IConvertible convertible = obj as IConvertible;
    try
    {
        return convertible.ToBoolean(CultureInfo.InvariantCulture);
    }
    catch (Exception)
    {
        if (!defaultValue.HasValue)
            throw new WarningException("required field has invalid format.");

        return defaultValue.Value;
    }
}
原文链接:https://www.f2er.com/aspnet/245277.html

猜你在找的asp.Net相关文章