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

时间:2012-02-14 02:14:06

标签: c# asp.net .net visual-studio

我正在使用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。

我有一个自定义错误标记,用于声明错误页面并附上每个错误代码。

当用户进入角色限制网站时,是否存在可以使用的错误代码?

E.g。

    <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");
    }

修改

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

2 个答案:

答案 0 :(得分:1)

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

   if (!Page.IsPostBack)
{

    if (Request.IsAuthenticated && !string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
       {
          Response.Redirect("Acces page");
        }
       else
       {

        Response.Redirect("/App/Error/UnauthorizedAccess.aspx");
       }
}

答案 1 :(得分:0)

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

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

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