1

我有一个 MVC 4 解决方案,在允许访问某些控制器之前,我一直在将授权操作过滤器应用于各种控制器以进行一些额外的检查。

 public class AuthoriseUserViewAccess : FilterAttribute , IAuthorizationFilter
{

    public void OnAuthorization(AuthorizationContext filterContext)
    {
    }
 }

这在我的控制器和操作中运行良好。

但我也想对我在同一个解决方案中使用的 WEB API 控制器做同样的事情。

我尝试将 AuthoriseUserViewAccess 属性应用于我的 apicontrollers,但似乎从未调用过 onAuthorisation 方法。

这是否也适用于 WebAPI 控制器,或者是否有另一种方法可以使用 WEBAPI 实现相同的功能。

4

1 回答 1

3

我使用了这个 aa 测试并调用了 OnAuthorization。该属性应用于我的 webapi。也许尝试从 System.Web.Http.AuthorizeAttribute 继承。

    public class CustomAuthorize : System.Web.Http.AuthorizeAttribute
{
    public override void OnAuthorization(
           System.Web.Http.Controllers.HttpActionContext actionContext)
    {
        // Do other checks
        var ok = false;
        if (!ok)
        {
            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Forbidden);
            return;
        }

        base.OnAuthorization(actionContext);
    }
}
于 2012-12-06T12:48:25.590 回答