我希望使用已在我的网络上使用的SQL数据库,因此我编写了代码来覆盖ValidateUser()
:
public override bool ValidateUser(string username, string password)
{
return true;
}
我已经设置了这个,所以它返回true,而不是现在检查我的数据库,只是为了测试它的理论。
这是我需要做的全部,还是有更多工作要做,以便它能够与其他功能一起正常工作,比如存储用户名信息以便以后可以检索,或者我只是将这些信息存储在会话变量?
一旦此函数返回true,用户是否有效地进行了身份验证?
答案 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;
}