在控制器的构造函数中获取用户名?

Las*_*vik 6 asp.net-mvc

我有一个控制器,根据登录的当前用户获取数据.我想分配一个这样的局部变量:

    public UsergroupsCustAdminController()
    {

        User u = _us.GetUsers(HttpContext.User.Identity.Name).First();

        this._customerID = u.CustomerID;
    }
Run Code Online (Sandbox Code Playgroud)

不知何故,我无法获得当前用户登录的价值.我该如何解决这个问题?我需要在我的控制器类中的许多地方使用"CustomerID".

/ M

Dav*_*d M 9

你试图过早挂钩.建议你覆盖OnActionExecuting并将此代码放在那里,如下所示:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    User u = _us.GetUsers(HttpContext.User.Identity.Name).First();
    this._customerID = u.CustomerID;
}
Run Code Online (Sandbox Code Playgroud)

  • @belugabob - 绝对正确,我自己就是这样做的坚持者.不知道如何通过(如果你检查我的编辑列表,你会看到许多拼写,语法和标点符号修复).+1来抓我.:) (3认同)

Las*_*vik -2

找到答案:

http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx

  • 请解释答案是什么并给出代码示例。SO 答案应该独立存在,没有源文章。尽管命名您的参考文献也是一个很好的做法。 (4认同)