我需要帮助,我正在 asp.net MVC3 中创建一个应用程序,我想设置生成的自定义会话 ID
var str = Math.floor(Math.random() * (2000 - 1000 + 1)) + 1000;
document.write("Session ID::" + str);
以上代码用java脚本函数编写,现在我想在ASP.NET MVC3的会话ID中设置该数字。
我需要帮助,我正在 asp.net MVC3 中创建一个应用程序,我想设置生成的自定义会话 ID
var str = Math.floor(Math.random() * (2000 - 1000 + 1)) + 1000;
document.write("Session ID::" + str);
以上代码用java脚本函数编写,现在我想在ASP.NET MVC3的会话ID中设置该数字。
一个快速的谷歌搜索显示了这个博客条目,它解释了如何在 asp.net 中覆盖会话 ID:
http://weblogs.asp.net/anasghanem/archive/2008/12/16/programmatically-sharing-the-session-id.aspx
简而言之:使用类SessionIDManager并调用方法SaveSessionId来设置您自己的会话 id:
SessionIDManager manager = new SessionIDManager();
string mySessionId = ...calculateYourOwnSessionId...;
bool redirected = false;
bool IsAdded = false;
manager.SaveSessionID(Context, mySessionId, out redirected, out IsAdded);
应该不惜一切代价避免这种情况,因为您的自定义会话值不是使用加密安全随机数生成器生成的,并且您将在您的应用程序中引入会话管理漏洞。
如果您需要获取当前会话标识符,可以通过以下两种方式之一进行:
// If in a page or user control:
string sessionId = this.Session.SessionID;
// In ASP.NET in a normal class:
string sessionId = System.Web.HttpContext.Current.Session.SessionID;
在此处阅读更多相关信息。