我遇到了结束会话的问题。我一直在“WebForms.asax”会话中点击按钮从零到一分钟计算时间(如果我将点击此按钮会话将永远不会结束)。我给了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();
}
}
}
的global.asax
void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 1;
}
void Session_End(object sender, EventArgs e)
{
Response.Redirect("http://localhost:51888/Default.aspx");
}
答案 0 :(得分:2)
Response.Redirect(Request.RawUrl);
将结束您的回复,这与致电:
相同Response.Redirect(Request.RawUrl, true);
bool表示停止响应,因此永远不会调用Session.Abandon()。如果你想在重定向后进行Session.Abandon(),你应该使用false调用redirect:
Response.Redirect(Request.RawUrl, false);