将用户重定向到自定义访问被拒绝页面

时间:2014-12-04 11:37:01

标签: asp.net web-config access-denied

我在每个目录中的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页面。

有没有办法实现我想要的目标?

1 个答案:

答案 0 :(得分:1)

您可以查看此内容(customerrors for 401.2 in ASP.NET

作为解决方法,您可以在Global.asax中的Authenication_Request事件中处理它并重定向未授权用户

但是,我的建议是将未经授权的请求重定向到登录页面。因为请求者可能被授权但只是忘记登录。所以你的方法将增加额外的步骤。