我想创建一个Web API过滤器,以检查请求 header 是否具有正确的Api key 。
如果没有,我想返回403响应代码并暂停执行(禁止的操作)
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/