2013-07-24 45 views
1

我們正在使用ASP.Net Framework 4.5創建網站。是否有可能將會話ID設置爲我在asp.net中選擇的值

我知道如何使用SessionManager爲當前httpContext生成新的sessionId。我也相信sessionId字段是隻讀的,不能修改。但是,是否可以創建一個具有我選擇的sessionId的新會話?

例如,如果我想讓當前會話ID的值爲「ASDFGHIJKLQWERTY」,是否可以創建一個?

客戶堅持認爲它可以完成。但是,我堅信這是不可能的。我無法找到任何證明它可以或不可以完成的參考。

如果有任何代碼或參考資料可以幫助我,我會非常感激。

+0

我不明白爲什麼你的客戶會希望你能做到這一點。 如果您想在會話中存儲其他ID,請將其存儲在會話狀態中。 –

+0

會話ID用於跟蹤跨系統的信息流。因此,需要將Id設置爲其中一個系統中以前使用的會話ID。 – Modi

回答

2

是的,SessionIDManager類可以做到這一點,就像這樣:

SessionIDManager Manager = new SessionIDManager(); 

string NewID = Manager.CreateSessionID(Context); 
string OldID = Context.Session.SessionID; 
bool redirected = false; 
bool IsAdded = false; 
Manager.SaveSessionID(Context, NewID,out redirected, out IsAdded); 
Response.Write("Old SessionId Is : " + OldID); 
if (IsAdded) 
{ 
    Response.Write("<br/> New Session ID Is : " + NewID); 
} 
else 
{ 
    Response.Write("<br/> Session Id did not saved : "); 
} 
+0

謝謝卡爾·安德斯。感謝你的幫助。我正在嘗試相同的。但由於某種原因..當我試圖給NewID(硬編碼值)「Test123」..它曾用於失敗的語句Manager.SaveSessionID。不確定的原因,但。但是,當我通過以前生成的ID之一...似乎工作。所以......現在一切都很好。再次感謝。 – Modi

相關問題