gpt4 book ai didi

c# - 如何创建返回禁止结果的过滤器

转载 作者:太空狗 更新时间:2023-10-29 20:04:37 25 4
gpt4 key购买 nike

我想创建一个 Web API 过滤器来检查请求 header 是否具有正确的 Api key 。

如果不行,我要返回403响应码,停止执行(禁止 Action )

public class ApiPermission : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{

}
}

使用我知道的 filterContext 我可以做类似的事情:

filterContext.Result = new RedirectTo...

但是我怎样才能将状态代码更改为 403 并只返回一个字符串并停止执行并停止处理其他过滤器和 Controller 操作?

最佳答案

如果你不想抛出异常,你可以返回一个HttpStatusCodeResult

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.Result != null) return; //Another filter has already returned a result so pass it on

//Do your filtering

filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.Forbidden, "Forbidden");
}

关于c# - 如何创建返回禁止结果的过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25900405/

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