gpt4 book ai didi

asp.net - Response.Redirect() 不起作用

转载 作者:行者123 更新时间:2023-12-02 17:36:59 24 4
gpt4 key购买 nike

我有 Default.aspx 页面,它继承自 BasePage.cs,而 BasePage.cs 继承自 System.Web.UI.Page。 BasePage 是我检查 session 是否超时的地方。当 session 超时并且用户单击某些内容时,我需要将用户重定向回“Main.aspx”页面。

这是我的基本页面中的代码

 override protected void OnInit(EventArgs e)
{
base.OnInit(e);
if (Context.Session != null)
{
if (Session.IsNewSession)
{
string cookie = Request.Headers["Cookie"];
if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
{
HttpContext.Current.Response.Redirect("Main.aspx", true);
return;
}
}
}
}

HttpContext.Current.Response.Redirect("Main.aspx", true);

我希望重定向停止执行 BasePage 并立即跳出。问题是,事实并非如此。

当我在 Debug模式下运行时,它会继续单步执行,就好像它不只是重定向并离开一样。如何安全地重定向?

最佳答案

看到你的基类继承自System.Web.UI.Page,你不需要使用HttpContext。尝试不使用它,看看是否有帮助。

编辑:添加了围绕response.redirect的页面检查

if (!Request.Url.AbsolutePath.ToLower().Contains("main.aspx"))
{
Response.Redirect("<URL>", false);
HttpContext.Current.ApplicationInstance.CompleteRequest();
}

关于asp.net - Response.Redirect() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044777/

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