如何从控制器获取User.Identity.Name?
我想有在我所有的观点一些可视数据信息,所以我下面这个教程如何从控制器获取User.Identity.Name?
http://www.asp.net/LEARN/mvc/tutorial-13-cs.aspx
所以我做了我自己的ApplicationController,但我需要得到来自用户的用户名。
然而,当我在构造函数中这样做“HttpContext.User.Identity.Name”时,它始终为空。我不知道为什么。
谢谢
好吧,基地的事情做到了。
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
Guid userId = coursesS.GetUserId(HttpContext.User.Identity.Name);
}
这样似乎工作。现在唯一的事情似乎是经历了两次。就像我登录,它似乎做了两次。我猜测,因为这就好像把代码放在每一个动作中一样。当我通过在我的控制器中调用它们来加载所有这些局部视图时,它会执行此操作。
这么多我应该缓存它,但我不知道如何。
尝试在ApplicationController中的初始化方法的初始化的东西,HttpContext的是不能在构造avaliable。确保调用base.Initialize()或者你可以得到一些有趣的结果。
你在一个控制器,以便使用以下命令:
ControllerContext.HttpContext.Current.User.Identity.Name
HttpContext.Current.User.Identity.Name
注意.Current我们从您的通话丢失。
嗯我可能需要导入的东西,因为我得到这个: 错误'System.Web.HttpContextBase'不包含'当前'的定义和没有扩展方法'当前'接受类型'系统的第一个参数.Web.HttpContextBase'可以找到(你是否缺少使用指令或程序集引用?) – chobo2 2009-10-01 20:35:45
我在哪里叫这个base.Initialze()?我不知道在哪里坚持它 – chobo2 2009-10-01 20:36:26