加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 在ActionFilterAttribute验证时停止响应

发布时间:2020-12-16 09:53:42 所属栏目:asp.Net 来源:网络整理
导读:我有一个ActionFilterAttribute,在OnExecuting事件上,我正在验证请求. 如果不是授权请求,我会做的事情如下: if(notAuthorized){ filterContext.HttpContext.AddError(new Exception("Invalid Request !!"));} 因此,对于未经授权的请求,它会添加异常并继续执
我有一个ActionFilterAttribute,在OnExecuting事件上,我正在验证请求.
如果不是授权请求,我会做的事情如下:

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

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

filterContext.HttpContext.Response.End();

但没有成功.请回复.

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

解决方法

只需设置filterContext的Result:

filterContext.Result = new HttpUnauthorizedResult("Invalid Request !!");

如果您只想允许访问经过身份验证的用户,则最好使用“授权”过滤器.

更新:

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

filterContext.Result = new ViewResult
        {
        ViewName = "{YourErrorViewName}",ViewData = { Model = new Exception("Invalid Request !!") }
        };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读