进入角色受限网页时,ASP.NET默认页面重定向

本文关键字:NET ASP 默认 重定向 角色 网页 | 更新日期: 2023-09-27 18:24:42

我使用的是VS2005 ASP.NET 2.0。

我正在使用web.config文件对特定角色特权网页进行角色管理,在我的全局(不在Administrator文件夹中)web.config文件中使用以下代码:

<location path="Administrator">
    <system.web>
        <authorization>
            <allow roles="Administrator"/>
            <deny roles="User"/>
            <deny users="?" />
        </authorization>
    </system.web>
</location>

网页可能受到角色限制,因此不允许没有管理员角色的用户访问。

然而,当任何角色的用户试图进入受限网页时,他们都会自动重定向到具有类似的URL的登录页面

http://localhost:2232/App/Login.aspx?ReturnUrl=%2fSoD%2fAdministrator%2fUserMgmt.aspx

这将要求用户按下按钮返回上一页。

这给我的错误处理带来了麻烦,因为这不应该发生,相反,应该显示一个错误页面。

我可以知道是否有任何解决方案或参数可以为每个文件夹/页面的默认重定向声明吗?


p.S.

我有一个自定义的错误标记,它声明附有每个错误代码的错误页面。

当用户进入角色受限网站时,我可以使用错误代码吗?

例如

    <customErrors defaultRedirect="~/Error/UnexpectedError.aspx" mode="On">
        <error statusCode="404" redirect="~/Error/PageNotFound.aspx"/>
    </customErrors>

重定向LOGGED IN用户到错误页面的解决方案:

    if (!Page.IsPostBack)
    {
        if (Request.IsAuthenticated && !string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
            Response.Redirect("/App/Error/UnauthorizedAccess.aspx");
    }

编辑

如果用户未登录并试图进入角色受限的网页,我如何将其重定向到错误页面?

进入角色受限网页时,ASP.NET默认页面重定向

使用其他条件我将进行此更改

   if (!Page.IsPostBack)
{
    if (Request.IsAuthenticated && !string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
       {
          Response.Redirect("Acces page");
        }
       else
       {
        Response.Redirect("/App/Error/UnauthorizedAccess.aspx");
       }
}

有一个web.config设置,用于确定未经授权的用户重定向到的URL。

<authentication mode="Forms">
    <forms loginUrl="~/Account/SignIn" timeout="2880" />
</authentication>

这是一个登录页面,但它可以很容易地成为一个包含任何类型消息的页面。