【问题标题】:How can I get my controller by HttpContextBase?如何通过 HttpContextBase 获取我的控制器?
【发布时间】:2013-02-19 06:53:07
【问题描述】:

我有基本控制器,假设它有一个名为 AnyProperty 的属性:

public class MyBaseController : Controller
    {
        public MyObject AnyProperty { get; set; }

        public MyBaseController()
        {
            AnyProperty = new MyObject();
        }
    }

RoleAttribute 中我需要使用AnyProperty。我用

public class RoleAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            MyBaseController controllerInstance = new MyBaseController();
            controllerInstance.AnyProperty   // I use like this 
        }
    }

如何通过httpContext 获取我的AnyProperty 属性? 不使用MyBaseController 实例。有可能吗?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 controller httpcontext


    【解决方案1】:

    这是另一种方法,但它可能会有所帮助:

    public override void OnAuthorization(HttpActionContext actionContext)
    {
        var controller = actionContext.ControllerContext.Controller as MyBaseController;
        if (controller == null)
        {
            return;
        }
        controller.AnyProperty = new MyObject();
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-27
      • 1970-01-01
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 2014-04-29
      相关资源
      最近更新 更多