【问题标题】:What to call after validateUser() for forms authentication?在 validateUser() 之后调用什么来进行表单身份验证?
【发布时间】:2012-03-20 19:28:08
【问题描述】:

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

问题:

  1. 我需要自己调用 ValidateUser() 方法吗?如果是这样,是什么 下一步要采取的措施?是否创建身份验证 cookie 需要调用哪些方法才能完成登录?

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

    1. 我应该在哪里以及如何为用户存储自定义数据?它是否存储在身份对象中?我应该将其存储在 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
    

    【讨论】:

    • 太棒了!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 2011-04-13
    • 2011-01-23
    • 2014-01-26
    相关资源
    最近更新 更多