我在每个目录中的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页面。
有没有办法实现我想要的目标?
答案 0 :(得分:1)
您可以查看此内容(customerrors for 401.2 in ASP.NET)
作为解决方法,您可以在Global.asax中的Authenication_Request事件中处理它并重定向未授权用户
但是,我的建议是将未经授权的请求重定向到登录页面。因为请求者可能被授权但只是忘记登录。所以你的方法将增加额外的步骤。