0
我在我的web.config文件中为每个目录中的每个页面都设置了一些访问设置,如下所示。将用户重定向到被拒绝的自定义访问页面
<location path="orderForm.aspx">
<system.web>
<authorization>
<allow roles="AdmStf" />
<allow roles="OrdPage" />
<deny users="*,?"/>
</authorization>
</system.web>
</location>
这很好。但是,当用户没有正确的访问级别时,用户会自动定向到根目录下的Default.aspx页面。
我想要做的,实际上是发送用户到一个自定义的AccessDenied.aspx页面。
在我的主web.config文件我有以下...
<customErrors mode="On" defaultRedirect="~/Views/Err/Error.aspx">
<error statusCode="401" redirect="~/Views/Err/AccessDenied.aspx" />
</customErrors>
但是这是行不通的,因为我预料到。用户仍然定向到Default.aspx页面。
有没有办法实现我想要的?
不要在错误情况下重定向用户 - 而是使用401响应标头提供错误响应,否则浏览器或其他UA将无法识别出响应确实是错误。 – Dai 2014-12-04 11:52:46
你是如何做到这一点的? – Stuart 2014-12-04 11:53:39
我在互联网上看到的所有东西似乎指向这样做,所以我不确定为什么这不起作用,它通常被标记为问题的答案... – Stuart 2014-12-04 13:01:33