我想根据数据库中保存的用户权限来限制网站上的某些页面。
该错误将源自服务/数据访问层。
我发现如果抛出UnauthorizedAccessException
,则asp.net管道返回的状态码为401,这将导致YSOD,而不是转到MVC自定义错误页面。
通过阅读,看来我需要返回403错误。我创建了一个自定义异常类型来代替UnauthorizedAccessException
。如何配置MVC以针对此错误返回403响应?然后,如何设置过滤器以在出现此错误时重定向到我的自定义禁止页面?我是否采用正确的方法?
最佳答案
也许您可以考虑将身份验证内置到asp.net MVC中...
事实是,您可以仅将[Authorize]
属性添加到 Controller 或
用户使用[Authorize(Users="Alice,Bob")]
,组使用[Authorize(Roles="Administrators")]
。
链接到MSDN article for reference。还有auth in mvc的教程
关于c# - 从MVC中的自定义异常类型返回403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23733754/