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

时间:2013-01-31 11:42:38

标签: c# asp.net

我遇到了结束会话的问题。我一直在“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");
        }

1 个答案:

答案 0 :(得分:2)

Response.Redirect(Request.RawUrl);

将结束您的回复,这与致电:

相同
Response.Redirect(Request.RawUrl, true);

bool表示停止响应,因此永远不会调用Session.Abandon()。如果你想在重定向后进行Session.Abandon(),你应该使用false调用redirect:

Response.Redirect(Request.RawUrl, false);

Redirect MSDN