【问题标题】:Forms Authentication - Storing and Retrieving User Names表单身份验证 - 存储和检索用户名
【发布时间】:2009-10-01 15:31:56
【问题描述】:

使用表单身份验证,如果每个用户在登录期间标记记住我,我会为每个用户存储一个 cookie,在 Login1_LoggedIn 事件中使用以下代码。

if (rememberMe.Checked) FormsAuthentication.SetAuthCookie(Login1.UserName, true);

当用户带着 cookie 到达我的页面时,我需要获取他/她的用户名,以便检查他们的角色。表单身份验证 cookie 是否存储此信息,我如何检索它?

【问题讨论】:

    标签: asp.net cookies forms-authentication


    【解决方案1】:

    当用户访问页面时,您解析为 SetAuthCookie 的字符串(在您的情况下为 Login1.UserName)将存储在 IPrincipal 中。您可以使用以下方式访问它:

    Page.User.Identity.Name
    

    【讨论】:

    • 这个问题是当我检查cookie时,用户没有登录;因此他的身份没有确定,因此我不能使用这个代码。
    • 哈哈。忽略我最后的评论。愚蠢的我妄下结论。 +1 并被 DaveG 接受!。
    • 也可以将用户角色存储在身份验证 cookie 本身中并使用 Page.User.IsInRole("yourrole");
    【解决方案2】:

    试试

    Page.User.Identity.Name
    

    HttpContext.Current.User.Identity.Name
    

    【讨论】:

    • +1 因为这是正确的,但 DaveG 击败了你,所以他被接受了。不过,谢谢!
    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多