是否可以将会话 ID 设置为我在 asp.net 中选择的值
Posted
技术标签:
【中文标题】是否可以将会话 ID 设置为我在 asp.net 中选择的值【英文标题】:Is it possible to set session id to a value of my choice in asp.net 【发布时间】:2013-07-24 05:45:51 【问题描述】:我们正在使用 ASP.Net Framework 4.5 创建一个网站。
我知道使用 SessionManager 为当前 httpContext 生成新 sessionId 的方法。我也相信 sessionId 字段是只读的,不能修改。但是,是否可以创建一个具有我选择的 sessionId 的新会话?
例如,如果我希望当前会话 ID 具有值“ASDFGHIJKLQWERTY”,是否可以创建一个?
客户坚持可以做到。但是,我坚信这是不可能的。我找不到任何证明可以或不能完成的参考。
如果有任何代码或参考资料可以帮助我,我将非常感谢。
【问题讨论】:
我不明白您的客户为什么要您这样做。如果您想在会话中存储另一个 ID,请将其存储在 Session 状态中。 会话 ID 用于跟踪跨系统的信息流。因此,需要将 Id 设置为其中一个系统中以前使用的会话 ID。 【参考方案1】:是的,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 : ");
【讨论】:
感谢卡尔安德斯。感谢你的帮助。我也在尝试同样的方法。但是由于某种原因..当我尝试为 NewID(硬编码值)提供“Test123”时..它曾经在语句 Manager.SaveSessionID 上失败。虽然不确定原因。但是,当我通过以前生成的 id 之一时......它似乎工作。所以..现在一切都很好。再次感谢。以上是关于是否可以将会话 ID 设置为我在 asp.net 中选择的值的主要内容,如果未能解决你的问题,请参考以下文章