在validateUser()之后调用表单身份验证?

时间:2012-03-20 19:28:09

标签: asp.net webforms asp.net-membership forms-authentication

我创建了一个自定义成员资格提供程序并覆盖了ValidateUser方法,但现在我很困惑。我没有使用任何登录控件,我只是在母版页上有一个站点范围的登录(用户名和密码框)。

问题:

  1. 我是否需要自己调用ValidateUser()方法?如果是这样,那是什么 接下来的步骤?我是否创建了auth cookie,我需要调用哪些方法才能完成登录?

  2. 如果用户经过身份验证,我需要返回一些自定义用户数据。是不是更好 调用GetUser并检查null或只调用ValidateUser然后 抓住用户对象?

    1. 我应该在何处以及如何为用户存储自定义数据?它存储在身份对象中吗?我应该将它存储在MembershipUser对象中吗?

1 个答案:

答案 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