Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从MVC中的自定义异常类型返回403_C#_Asp.net Mvc_Error Handling_Custom Errors - Fatal编程技术网

C# 从MVC中的自定义异常类型返回403

C# 从MVC中的自定义异常类型返回403,c#,asp.net-mvc,error-handling,custom-errors,C#,Asp.net Mvc,Error Handling,Custom Errors,我想根据数据库中保存的用户权限限制网站上的某些页面 错误将起源于服务/数据访问层 我发现,如果我抛出一个UnauthorizedAccessException,那么asp.net管道返回的状态代码是401,这将导致一个YSOD,而不是进入MVC自定义错误页面 从周围的阅读来看,我似乎需要返回403错误。我已经创建了一个自定义异常类型,用于代替未经授权的访问异常。如何将MVC配置为在此错误上返回403响应?然后,如何设置筛选器以重定向到此错误的自定义禁止页面?我是否采取正确的方法? < P>也许你

我想根据数据库中保存的用户权限限制网站上的某些页面

错误将起源于服务/数据访问层

我发现,如果我抛出一个
UnauthorizedAccessException
,那么asp.net管道返回的状态代码是401,这将导致一个YSOD,而不是进入MVC自定义错误页面


从周围的阅读来看,我似乎需要返回403错误。我已经创建了一个自定义异常类型,用于代替未经授权的访问异常。如何将MVC配置为在此错误上返回403响应?然后,如何设置筛选器以重定向到此错误的自定义禁止页面?我是否采取正确的方法?

< P>也许你可以考虑认证构建到ASP.NET MVC…… 问题是,您只需将
[Authorize]
属性添加到控制器或
[Authorize(Users=“Alice,Bob”)]
用于用户,而
[Authorize(Roles=“Administrators”)]
用于组


链接到。关于

我处理403的一种方法的教程是;在所有日志记录后的应用程序_Error等中,检查错误代码,如果是403,则将其重定向到Errors controller中的403 action,其中显示403错误的良好自定义视图。将观察此空间以获得更好的想法。@Yahya但是如何强制MVC将错误解释为403状态?您看过吗?您的自定义异常类型应继承自
UnauthorizedAccessException