gpt4 book ai didi

c# - 身份验证失败时重定向到母版页中的页面不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:09 25 4
gpt4 key购买 nike

对于我的 Web 应用程序,我使用的是 Windows 身份验证。我在Global.asax页面的Session_Start事件中写了如下代码;如果登录用户有效,我将这些详细信息存储在 session 中

Session["UserDetails"] = "XXXX";

如果用户无效则

Session["UserDetails"] = null;

然后在我的MasterPage中,我使用下面的代码

if(!IsPostBack)
{
if(Session["UserDetails"] == null)
{
Response.Redirect("AuthenticationFailure.aspx");
}
}

但是,它不会重定向到那个特定的失败页面。当我在每个 aspx 页面加载中检查相同的条件时,它似乎工作正常,但页面没有重定向。

这里可能出了什么问题?我应该如何重定向到 AuthenticationFailure 页面以使其正常工作?

最佳答案

由于您的 AuthenticationFailure 页面使用的母版页会在用户未通过身份验证时进行重定向,因此该页面将永远不会显示,因为它会在到达页面之前进行重定向。

要么在母版页的代码中处理此问题,要么不要将母版页用于身份验证失败页面。

您可以使用 Request.FilePath 检查请求的路径变量,如果它已经在 AuthenticationFailure 页面,则避免重定向。

if(!IsPostBack)
{
const string FailurePage = "AuthenticationFailure.aspx";
string page = Request.FilePath.Substring(Request.FilePath.LastIndexOf('/'));
if(Session["UserDetails"] == null && page != FailurePage)
{
Response.Redirect(FailurePage);
}
}

关于c# - 身份验证失败时重定向到母版页中的页面不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com