在 WebApi2 中创建过滤器以过滤图像
Creating filter in WebApi2 to filter Images
我是网络新手api,并且创建了一个网络api 项目。这里不同的控制器方法需要图像作为参数。我正在使用外部第 3 方 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 请求。然后您可以从中读取数据,将其传递给您的第 3 方 API,如果它没有通过过滤器,您可以访问 Response 并在它到达控制器之前结束它:
var response = HttpContext.Current.Response;
response.StatusCode = (int)HttpStatusCode.BadRequest; // or whatever
response.End();
我是网络新手api,并且创建了一个网络api 项目。这里不同的控制器方法需要图像作为参数。我正在使用外部第 3 方 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 请求。然后您可以从中读取数据,将其传递给您的第 3 方 API,如果它没有通过过滤器,您可以访问 Response 并在它到达控制器之前结束它:
var response = HttpContext.Current.Response;
response.StatusCode = (int)HttpStatusCode.BadRequest; // or whatever
response.End();