加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 21:01:01 所属栏目:asp.Net 来源:网络整理
导读:我目前正在为asp .net写一个自定义成员资格提供程序,而我遇到的问题是我不知道如何以与提供给标准asp .net成员资格提供者相同的方式向自定义成员资格提供者提供参数在web.config文件中,如密码长度. 解决方法 从MembershipProvider派生自己的类时,必须覆盖Ini
我目前正在为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;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读