在ActionFilterAttribute验证时停止响应

时间:2013-12-05 11:37:29

标签: asp.net-mvc-4 actionfilterattribute

我有一个ActionFilterAttribute,在OnExecuting事件中,我正在验证请求。 如果它不是授权请求,我会做类似的事情:

if(notAuthorized){
  filterContext.HttpContext.AddError(new Exception("Invalid Request !!"));
}

因此,对于未经授权的请求,它会添加异常并继续执行操作。 我的问题是如何在此时停止处理? 我试过了:

filterContext.HttpContext.Response.End();

但没有成功。请回复。

虽然检查操作中的错误是一个选项,但我正在寻找动作过滤器本身的更改,以便我们不需要更改每个操作。

1 个答案:

答案 0 :(得分:3)

只需设置Result的{​​{1}}:

filterContext

如果您只想允许访问经过身份验证的用户,请最好使用filterContext.Result = new HttpUnauthorizedResult("Invalid Request !!"); 过滤器。

<强>更新

由于您希望在授权失败时呈现错误视图,请尝试以下操作:

Authorize