ASP.NET MVC - 如何在请求之间保存一些数据?

时间:2010-04-12 17:24:07

标签: asp.net-mvc

我正在尝试解决问题:当用户登录WebSite时(通过存储在母版页上的用户控件.ascx),它的名称存储在Page.User.Identity.Name属性中。好的,但是如何在控制器中检索该用户名?是否可以在控制器中注册System.Security.Principal命名空间?换句话说 - 控制器必须知道谁的用户想要做某些动作(例如改变账户数据)。我可以将它的名字存储在每个View的Html.Hidden控件中,但我不希望在我的视图中弄得一团糟

3 个答案:

答案 0 :(得分:5)

IPrincipal User是控制器中的一个成员(它是一个属性),因此您需要做的就是在控制器方法中获取当前登录用户的名称

string userName = User.Identity.Name

答案 1 :(得分:1)

罗伯特的回答是正确的。另一种方法是使用Thread类:

System.Threading.Thread.CurrentPrincipal.Identity.Name

答案 2 :(得分:0)

您是否考虑过使用会话来存储与用户相关的数据?