在asp.net web api上过滤消息处理程序

时间:2013-06-17 15:54:25

标签: asp.net asp.net-mvc-4 asp.net-web-api

我开发了一个API,需要保护它。 我需要在security1中保护大多数方法,在security2中保护一些方法。 我开发了两个消息句柄来实现这两种证券。 我遇到一个问题,两个句柄按顺序执行所有请求。 我如何以一种很酷的方式过滤处理程序到请求。 提前谢谢......

1 个答案:

答案 0 :(得分:2)

创建两个授权过滤器并应用到您希望的位置。

public class MySecurity1Attribute : AuthorizeAttribute
{
    protected override bool IsAuthorized(HttpActionContext actionContext)
    {
        // Do your security 1 stuff here and return true if authorized
    }
}

public class MySecurity2Attribute : AuthorizeAttribute
{
    protected override bool IsAuthorized(HttpActionContext actionContext)
    {
        // Do your security 2 stuff here and return true if authorized
    }
}
public MyController : ApiController
{
    [MySecurity1]
    public HttpResponseMessage Post()
    {
    }
}

public MyOtherController : ApiController
{
    [MySecurity2]
    public HttpResponseMessage Post()
    {
    }
}