gpt4 book ai didi

asp.net-core - 如何在 ActionFilterAttribute 中强制请求失败

转载 作者:行者123 更新时间:2023-12-04 05:04:43 30 4
gpt4 key购买 nike

我有一个继承 ActionFilterAttribute 的类。

它会解密调用者加密的请求中的一些查询字符串属性。这确保我的 WebAPI 方法仅接收“良好”参数。效果很好。

如果参数未加密,我需要做但没有成功的是否定/失败上下文(请求)。

如何强制终止请求?我在做我的逻辑:

public override void OnActionExecuting(ActionExecutingContext context)

已经尝试将响应设置为 401,但这不起作用:

//Negate the access by default
context.HttpContext.Response.StatusCode = 401;

最佳答案

  1. 正如 Clint B 所说,其中一种方法是使用中间件。 Here是一个关于中间件的 ASP Core 文档,带有操作示例

  2. 另一方面,如果您使用 MVC 并希望使用 ActionFilter 强制 MVC Action 停止,您可以通过将 Action Context .Result 属性设置为非空值来实现值(value)。

例子:

actionContext.HttpContext.Response.StatusCode = 401;
actionContext.HttpContext.Response.Headers.Clear();

actionContext.Result = new EmptyResult();
//var wrongResult = new { error = "Wrong parameters"};
//actionContext.Result = new JsonResult(wrongResult);

How to chose between Middleware and Action filter? Action filter can be used as a method filter, controller filter, or global filter only for MVC HTTP requests.

Middleware is component that "sits" on the HTTP pipeline and examines all requests and responses.

  1. 对于请求参数验证,您可以使用 Data Annotations .

关于asp.net-core - 如何在 ActionFilterAttribute 中强制请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37575696/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com