【发布时间】:2014-07-07 04:15:53
【问题描述】:
我想根据保存在数据库中的用户权限来限制我网站上的某些页面。
错误将源自服务/数据访问层。
我发现如果我抛出一个UnauthorizedAccessException,那么 asp.net 管道返回的状态码是 401,这会导致 YSOD 而不是转到 MVC 自定义错误页面。
从周围阅读看来,我需要返回 403 错误。我创建了一个自定义异常类型来代替UnauthorizedAccessException。如何配置 MVC 以针对此错误返回 403 响应?然后,如何设置过滤器以在出现此错误时重定向到我的自定义禁止页面?我是否采取了正确的方法?
【问题讨论】:
-
我处理 403 的一种方法是;在所有日志记录等之后在 Application_Error 中,检查错误代码,如果是 403,将其重定向到错误控制器中的 403 操作,该操作显示 403 错误的漂亮自定义视图。
-
会关注这个空间以获得更好的想法。
-
@Yahya 但是如何强制 MVC 将错误解释为 403 状态?
-
你的自定义异常类型应该继承自
UnauthorizedAccessException。
标签: c# asp.net-mvc error-handling custom-errors