1

ベースコントローラーがあり、次の名前のプロパティがあると仮定します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 
        }
    }

AnyPropertyまでに自分の財産 を取得するにはどうすればよいhttpContextですか? MyBaseControllerインスタンスを使用していません。出来ますか?

4

1 に答える 1

2

これは別の方法ですが、役立つ場合があります。

public override void OnAuthorization(HttpActionContext actionContext)
{
    var controller = actionContext.ControllerContext.Controller as MyBaseController;
    if (controller == null)
    {
        return;
    }
    controller.AnyProperty = new MyObject();
}
于 2013-02-19T07:35:54.750 に答える