ASP.NET global.asax end_session(会话永不结束)
本文关键字:会话 结束 session global NET asax end ASP | 更新日期: 2023-09-27 17:57:02
我在结束会话时遇到问题。当我单击"WebForms.asax"会话中的按钮时,所有时间都从零到一分钟(如果我单击此 buton 会话将永远不会结束)。我给了价值 1 分钟来结束所有会话,当我不点击网站时,这是工作。你知道哪里有问题吗?
在这里我开始会话:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Session_Test
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session["UserAuthentication"] = "dddd";
TypSession.InnerHtml = "<a href='WebForm1.aspx'>sdsds</a>";
}
}
}
另一个网站(WebForm1.aspx):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Session_Test
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
example.InnerHtml = Session["UserAuthentication"].ToString()+" "+ Session.Timeout.ToString();;
}
protected void Unnamed1_Click(object sender, EventArgs e)
{
Response.Redirect(Request.RawUrl);
Session.Abandon();
}
}
}
全球
void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 1;
}
void Session_End(object sender, EventArgs e)
{
Response.Redirect("http://localhost:51888/Default.aspx");
}
Response.Redirect(Request.RawUrl);
将结束你的回应,这与调用相同:
Response.Redirect(Request.RawUrl, true);
其中 bool 代表停止响应,因此永远不会调用您的 Session.Abandon()。如果你想在重定向后执行 Session.Abandon(),你应该用 false 调用重定向:
Response.Redirect(Request.RawUrl, false);
重定向 MSDN