【问题标题】:MVC3 - Access User context in Controller base classMVC3 - 在控制器基类中访问用户上下文
【发布时间】:2011-10-10 21:11:21
【问题描述】:

我在视图中有以下代码

@User.Identity.Name

工作正常。

自定义控制器基类中的相同代码不起作用。 User 对象是 null

public class AdminBaseController : Controller
    {
        public AdminBaseController()
        {    
            string userId = User.Identity.Name;                
             //if(!AnAdmin)
                 //redirect to UnauthorizedPage

我想使用这个基类代替System.Web.MVC.Controller 作为我所有管理屏幕的基础。这样我可以重定向任何不是管理员的人(NTLM 身份验证)。

为什么是空值?我如何了解我的上下文? (HttpContextControllerContext 也是空的)


经过一些修补后,Controller 构造函数中的内容为空。操作方法工作正常。问题仍然存在,但似乎我需要帮助选择替代实现。

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

    您应该使用Authorization filterASP.NET MVC Authorization。还要检查Understanding Action Filters

    或者你可以重写Controller上的Initialize方法,User对象将被初始化。

    【讨论】:

      【解决方案2】:

      我刚刚尝试访问控制器类中函数中的“名称”属性。这不是问题,也不是 null。

      我最好的猜测是你不能在控制器的构造函数中访问这个对象。

      【讨论】:

        猜你喜欢
        • 2011-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-08
        • 1970-01-01
        • 2010-10-22
        相关资源
        最近更新 更多