使用SqlMembershipProvider和自定义SQL数据库覆盖ValidateUser()

时间:2012-08-23 14:45:07

标签: c# asp.net sql-server membership-provider

我希望使用已在我的网络上使用的SQL数据库,因此我编写了代码来覆盖ValidateUser()

public override bool ValidateUser(string username, string password)
{
    return true;
}

我已经设置了这个,所以它返回true,而不是现在检查我的数据库,只是为了测试它的理论。

这是我需要做的全部,还是有更多工作要做,以便它能够与其他功能一起正常工作,比如存储用户名信息以便以后可以检索,或者我只是将这些信息存储在会话变量?

一旦此函数返回true,用户是否有效地进行了身份验证?

1 个答案:

答案 0 :(得分:1)

如果您已经从SqlmembershipProvider继承,则无需覆盖或实现所有方法。

如果要覆盖ValidateUser(例如记录无效登录尝试),则无需手动存储用户(他存储在数据库中并通过cookie识别),并且可以通过{{ 3}}

例如:

public override bool ValidateUser(string username, string password)
{
    // check in database with SqlmembershipProvider
    bool isValid = base.ValidateUser(username, password);
    // get user from database
    var user = Membership.GetUser(username);
    if(isValid)
    {
        // ...
    }
    else{
        // log wrong attempt if you want
    }
    return isValid;
}