【问题标题】:What to call after validateUser() for forms authentication?在 validateUser() 之后调用什么来进行表单身份验证?
【发布时间】:2012-03-20 19:28:08
【问题描述】:
我创建了一个自定义成员资格提供程序并覆盖了 ValidateUser 方法,但现在我很困惑。我没有使用任何登录控件,我只是在母版页上有一个站点范围的登录(用户名和密码框)。
问题:
我需要自己调用 ValidateUser() 方法吗?如果是这样,是什么
下一步要采取的措施?是否创建身份验证 cookie 需要调用哪些方法才能完成登录?
-
如果用户通过身份验证,我需要返回一些自定义用户数据。是不是更好
调用 GetUser 并检查 null 或只调用 ValidateUser 然后
抓取用户对象?
- 我应该在哪里以及如何为用户存储自定义数据?它是否存储在身份对象中?我应该将其存储在 MembershipUser 对象中吗?
【问题讨论】:
标签:
asp.net
webforms
asp.net-membership
forms-authentication
【解决方案1】:
是的,您通过调用诸如
来验证凭据是否正确
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