2014-06-26 48 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