【发布时间】:2010-06-14 00:34:03
【问题描述】:
用户通过身份验证后,我将他们的用户名存储在会话状态中,但如果会话超时,我想根据他们使用原始身份验证的用户名为用户创建一个新会话。如何从 Forms Authentication 中获取当前经过身份验证的用户?
【问题讨论】:
标签: asp.net forms-authentication
用户通过身份验证后,我将他们的用户名存储在会话状态中,但如果会话超时,我想根据他们使用原始身份验证的用户名为用户创建一个新会话。如何从 Forms Authentication 中获取当前经过身份验证的用户?
【问题讨论】:
标签: asp.net forms-authentication
当前经过身份验证的用户应该是IIdentity 中的名称,该名称分配给HttpContext 的User 属性上的IPrincipal 的身份
HttpContext.Current.User.Identity.Name
在 ASP.NET MVC 中,它可以在控制器中通过
this.User.Identity.Name
【讨论】:
您根本不需要在会话中存储用户名 - 在您的页面中只需访问 HttpContext 的 User 属性。要获取实际的用户名,您可以使用User.Identity.Name,并且作为一种方便的捷径,ASP.NET Page 类本身具有用户属性,因此您可以这样做
string userName = Page.User.Identity.Name;
在你的代码后面。
如果您使用的是 ASP.NET MVC,则可以在控制器中访问 User 属性
string userName = User.Identity.Name
【讨论】: