WebApi中的自定义授权

时间:2013-10-16 10:40:31

标签: c# asp.net-mvc-4 asp.net-web-api iauthorizationfilter

我想知道如何更改顺序或do something来控制方法的执行顺序。

I have this class prototype:

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public abstract class ApiDbAuthAttribute : System.Web.Http.Filters.ActionFilterAttribute, IAuthorizationFilter {
     public override void OnActionExecuting(HttpActionContext actionContext) {
         // this I want to go off first
     }

     public void OnAuthorization(AuthorizationContext filterContext) {
        // this I want to go off after the first
     }

     public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) {
        // this at the end
     }
}

实际发生了什么:

 1. OnAuthorization
 2. OnActionExecuting
 3. OnActionExecuted 

我知道,这是正确的顺序,我知道它应该是这样的, 但我正在触发 UnitOfWork OnActionExecuting , 当我使用这个过滤器时,我使用DB的原因 PS:我正在使用

using IAuthorizationFilter = System.Web.Mvc.IAuthorizationFilter;

我知道 System.Web.Http.Filters.IAuthorizationFilter 之间存在差异, 但是我没有找到实现这个的方法,我不知道我是否需要这样做。

如何更改订单或如何解决?

0 个答案:

没有答案