我创建了一个自定义成员资格提供程序并覆盖了ValidateUser方法,但现在我很困惑。我没有使用任何登录控件,我只是在母版页上有一个站点范围的登录(用户名和密码框)。
问题:
我是否需要自己调用ValidateUser()方法?如果是这样,那是什么 接下来的步骤?我是否创建了auth cookie,我需要调用哪些方法才能完成登录?
如果用户经过身份验证,我需要返回一些自定义用户数据。是不是更好 调用GetUser并检查null或只调用ValidateUser然后 抓住用户对象?
答案 0 :(得分:2)
是的,通过执行
等调用验证凭据是否正确Membership.ValidateUser(TextBoxUsername.Text, TextBoxPassword.Text)
如果上述调用返回true
,那么您需要设置身份验证cookie,如下所示:
FormsAuthentication.SetAuthCookie(TextBoxUsername.Text, CheckboxRememberMe.Checked);
如果您想下次自动登录,我会使用“记住我”复选框。
要获取用户详细信息,请致电
Membership.FindUsersByName(TextBoxUsername.Text)
您可以存储用户详细信息的最便利的地方是会话。
你没有问,但同样重要的是退出页面。撤消登录步骤所需的功能是:
FormsAuthentication.SignOut();
Session.Abandon();
Response.Redirect("~/login.aspx", false);//or homepage, or any other page