在 WebApi2 中创建筛选器以筛选图像



我是webapi的新手,并创建了一个Web api项目。这里不同的控制器方法需要图像作为参数。我正在使用外部第三方 API 来检查用户上传的图像是否不是任何亵渎图像。因此,与其在 actionMethod 级别检查它,我认为使用过滤器进行检查可能是个好主意,这样就可以节省我单独检查它的时间。但是我不知道如何开始为此编写代码。

public class ImageFilter : FilterAttribute,IFilter
{
public void OnActionExecuting(HttpActionContext httpActionContex)
{
if(!httpActionContex.ActionDescriptor.) // ???? what should come
}
}

请指导我。不需要确切的代码,只需要正确的方向和指导..谢谢

顾名思义,FilterAttribute 是一个属性,可以在 WebAPI 管道上全局设置,也可以在特定的控制器方法上单独设置。只需在特定控制器方法上拍打[ImageFilter]属性,WebAPI 管道将在执行操作方法之前执行筛选器 - 让您有机会筛选哪些请求进入该方法。

对于自定义逻辑的实际实现,您可以在OnActionExecuting方法中访问HttpContext.Current.Request,从而允许您访问传入的 HTTP 请求。然后,您可以从中读取数据,将其传递给第三方 API,如果它没有通过过滤器,您可以访问响应并在它到达控制器之前结束它:

var response = HttpContext.Current.Response;
response.StatusCode = (int)HttpStatusCode.BadRequest; // or whatever
response.End();

最新更新