进入角色受限网页时,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");
}
编辑
如果用户未登录并试图进入角色受限的网页,我如何将其重定向到错误页面?
使用其他条件我将进行此更改
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>
这是一个登录页面,但它可以很容易地成为一个包含任何类型消息的页面。