是否可以在 asp.net 中将会话 ID 设置为我选择的值

Mod*_*odi 2 c# asp.net session sessionid session-cookies

我们正在使用 ASP.Net Framework 4.5 创建一个网站。

我知道使用 SessionManager 为当前 httpContext 生成新 sessionId 的方法。我也相信 sessionId 字段是只读的,不能修改。但是,是否可以创建一个具有我选择的 sessionId 的新会话?

例如,如果我希望当前会话 Id 具有一个值“ASDFGHIJKLQWERTY”,是否可以创建一个?

客户坚持认为可以做到。但是,我坚信这是不可能的。我找不到任何参考资料证明它可以或不能完成。

如果有任何代码或参考资料可以帮助我,我将不胜感激。

Kar*_*son 5

是的,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 : ");
}
Run Code Online (Sandbox Code Playgroud)