RedirectFromLoginPage()未更新User.Identity.Name

时间:2010-06-02 20:22:21

标签: asp.net forms-authentication asp.net-3.5

我使用FormsAuthentication.RedirectFromLoginPage(userName.Trim(), false);设置我稍后引用的User.Identity.Name字段。当我执行此行时,User.Identity对象根本不更新;它包含以前设置的任何内容。我在网上看到的所有文档都说这应该用正确的名称更新我的User.Identity对象,但我没有看到这种情况发生。

我已正确设置了网络配置,其中包含以下几行:

<authentication mode="Forms">
    <forms name="formsauth" loginUrl="Login.aspx" protection="All" timeout="60">
    </forms>
</authentication>
<authorization>
    <deny users="?"/>
</authorization>

我对这个东西比较新,所以任何帮助都表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

它将在下一个请求时更新,但不会在其后的下一行上更新。 RedirectFromLoginPage在客户端浏览器中设置一个身份验证cookie,将在下一个客户端请求时读取,您将看到User.Identity.Name属性已更新。在同一HTTP请求中更新此属性是没有意义的,因为您已经知道用户在调用方法时已通过身份验证。