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

6

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

    public UsergroupsCustAdminController()
    {

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

        this._customerID = u.CustomerID;
    }

我无法获取当前登录用户的值。我该如何解决这个问题?我需要在我的控制器类中的许多地方使用“CustomerID”。

/M

2个回答

9

您正在尝试过早挂钩。建议您重写OnActionExecuting并将此代码放入其中,像这样:

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

你有一些示例可以展示如何传递那个变量吗? - Lasse Edsvik
3
@belugabob - 完全正确,我自己也很注重这一点。不知道那是怎么过审的(如果您查看我的编辑列表,您会看到我进行了许多拼写、语法和标点修正)。感谢您指出我的错误。:) - David M

-2

4
请解释答案并提供一个代码示例。SO的答案应该能够独立于源文章存在。虽然命名你的参考文献也是良好的实践。请问需要翻译哪种语言? - Richard Garside
链接已损坏。 - Zapnologica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接