1

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

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

我已将其设置为返回 true,暂时不检查我的数据库,只是为了测试它的理论。

这就是我需要做的所有事情,还是还有更多工作要做才能与其他功能正常工作,例如存储用户名信息以便以后检索,或者我只是将这些信息存储在会话变量中?

一旦这个函数返回 true,它的用户是否有效地通过了身份验证?

4

1 回答 1

1

如果您已经从SqlmembershipProvider.

如果你想覆盖ValidateUser(例如记录无效的登录尝试),你不需要手动存储用户(他存储在数据库中并通过 cookie 识别)并且可以通过Membership.GetUser.

例如:

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;
}
于 2012-08-23T14:56:47.013 回答