Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net web api上筛选消息处理程序_Asp.net_Asp.net Mvc 4_Asp.net Web Api - Fatal编程技术网

在asp.net web api上筛选消息处理程序

在asp.net web api上筛选消息处理程序,asp.net,asp.net-mvc-4,asp.net-web-api,Asp.net,Asp.net Mvc 4,Asp.net Web Api,我开发了一个API,需要保护它。 我需要保护security1和security2中的大多数方法。 我开发了两个消息句柄来实现这两种安全性。 我面临一个问题,这两个句柄与所有请求一起顺序执行。 如何以一种冷静的方式过滤处理程序以满足请求。 提前感谢…创建两个授权筛选器,并将其应用到您希望的位置 public class MySecurity1Attribute : AuthorizeAttribute { protected override bool IsAuthorized(Http

我开发了一个API,需要保护它。 我需要保护security1和security2中的大多数方法。 我开发了两个消息句柄来实现这两种安全性。 我面临一个问题,这两个句柄与所有请求一起顺序执行。 如何以一种冷静的方式过滤处理程序以满足请求。
提前感谢…

创建两个授权筛选器,并将其应用到您希望的位置

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()
    {
    }
}

什么是security1和security2?security1和security2在不同的路径中吗?如果是,您可以在路由定义中配置处理程序。实际上,安全1是基本身份验证,安全2是HMAC身份验证,我想用第一个身份验证一些post请求,用HMAC安全验证一些post请求。谢谢,这是一个干净的解决方案。