【问题标题】:Returning 403 from custom exception type in MVC从 MVC 中的自定义异常类型返回 403
【发布时间】: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 状态?
  • 你看过这个吗? stackoverflow.com/a/2578795/125740
  • 你的自定义异常类型应该继承自UnauthorizedAccessException

标签: c# asp.net-mvc error-handling custom-errors


【解决方案1】:

也许您可以考虑在 asp.net MVC 中构建身份验证... 问题是您可以将 [Authorize] 属性添加到您的控制器或 [Authorize(Users="Alice,Bob")] 用于用户,[Authorize(Roles="Administrators")] 用于组。

链接到MSDN article for reference。还有auth in mvc的教程

【讨论】:

    猜你喜欢
    • 2017-10-31
    • 2019-05-07
    • 1970-01-01
    • 2010-10-02
    • 2020-04-05
    • 2021-04-21
    • 2020-09-01
    • 2016-03-19
    • 2011-01-03
    相关资源
    最近更新 更多