2014-06-26 46 views
0

是否有刷新或重新生成HttpContext.Session.SessionID的方法?刷新或重新生成HttpContext.Session.SessionID

我正在使用此(浏览器)SessionID来跟踪客户注册某个产品。

我使用此ID来跟踪他们在页面上的移动和错误以及进度。

用户注册后,我想刷新会话ID,让他们在理论上注册两次。

但我需要新的身份证以使其成为新的独立注册。

+2

为了什么目的?这听起来像是需要退后一步并解决实际问题的典型例子,而不是继续尝试你认为应该是解决方案的方法。 – David

+0

@David更新即将到来 – Pinch

+0

我不明白“刷新会话ID”会让用户“注册两次”,或者如何避免这种情况。什么“报名”涉及?这听起来像你应该集中精力的地方。如果这个“注册”过程与会话ID紧密耦合,那么它应该与它解耦。使用您可以控制的标识符。 – David

回答

3

你可以使用:

Session.Abandon(); 

这里是我做的,它会产生一个新的会话ID:

protected void Page_Load(object sender, EventArgs e) 
{ 
    lblSession.Text = Session.SessionID; 
} 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    Session.Abandon(); 
} 

如果您放弃会话,那么下一个页面请求将获得一个新的会话ID。

+0

这不会刷新SessionID – Pinch

+0

我以为我试过让我第二次去它..休息。 – Pinch

+0

不,保持不变:var q = HttpContext.Session.SessionID; HttpContext.Session.Abandon(); var q1 = HttpContext.Session.SessionID; HttpContext.Session.Abandon(); var q2 = HttpContext.Session.SessionID; HttpContext.Session.Abandon(); var q3 = HttpContext.Session.SessionID; HttpContext.Session.Abandon(); – Pinch