如何为特定用户角色设置maxInvalidPasswordAttempts

时间:2011-07-19 11:55:30

标签: c# asp.net forms-authentication

在我的应用程序中,有不同的用户角色,如admin,user,superuser。我在我的应用程序中使用ASP .net成员资格提供程序。在我的machine.config文件中,maxInvalidPasswordAttempts设置为5,这是所有用户的默认值。我的问题是,即使对于管理员用户,最大无效密码尝试次数为5.我只需要更改管理员用户的最大无效密码尝试次数。请帮忙。

1 个答案:

答案 0 :(得分:3)

我认为默认提供商无法做到这一点。由于MaxInvalidPasswordAttempts甚至没有在数据库中持久存在,据我所知。您可能需要考虑编写实现此附加层的派生成员资格提供程序。

public class myMembershipProvider : System.Web.Security.SqlMembershipProvider
{

public override int MaxInvalidPasswordAttempts
{
    get
    {
        //Check to the role of the user....and pass back the attempts allowed for them

        if (HttpContext.Current.User.IsInRole(Admin))
        {
            return 9999; whatever...
        }
        return base.MaxInvalidPasswordAttempts;
    }
}
}