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");
        }

ASP.NET global.asax end_session(会话永不结束)

Response.Redirect(Request.RawUrl);

将结束你的回应,这与调用相同:

Response.Redirect(Request.RawUrl, true);

其中 bool 代表停止响应,因此永远不会调用您的 Session.Abandon()。如果你想在重定向后执行 Session.Abandon(),你应该用 false 调用重定向:

Response.Redirect(Request.RawUrl, false);

重定向 MSDN