我有一个ActionFilterAttribute,在OnExecuting事件中,我正在验证请求。 如果它不是授权请求,我会做类似的事情:
if(notAuthorized){
filterContext.HttpContext.AddError(new Exception("Invalid Request !!"));
}
因此,对于未经授权的请求,它会添加异常并继续执行操作。 我的问题是如何在此时停止处理? 我试过了:
filterContext.HttpContext.Response.End();
但没有成功。请回复。
虽然检查操作中的错误是一个选项,但我正在寻找动作过滤器本身的更改,以便我们不需要更改每个操作。
答案 0 :(得分:3)
只需设置Result
的{{1}}:
filterContext
如果您只想允许访问经过身份验证的用户,请最好使用filterContext.Result = new HttpUnauthorizedResult("Invalid Request !!");
过滤器。
<强>更新强>
由于您希望在授权失败时呈现错误视图,请尝试以下操作:
Authorize