在ASP.NET MVC中生成它自己的会话ID#

时间:2012-11-15 09:14:05

标签: javascript asp.net-mvc-3 sessionid

我需要帮助,我在asp.net MVC3中创建一个应用程序,我想设置生成的自定义会话ID

var str = Math.floor(Math.random() * (2000 - 1000 + 1)) + 1000;

 document.write("Session ID::" + str);

上面用java脚本函数编写的代码,现在我想在ASP.NET MVC3中的会话ID中设置该编号。

2 个答案:

答案 0 :(得分:1)

快速谷歌搜索显示此博客条目,其中解释了如何覆盖asp.net中的会话ID:

http://weblogs.asp.net/anasghanem/archive/2008/12/16/programmatically-changing-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);

答案 1 :(得分:0)

应该不惜一切代价避免这种情况,因为您的自定义会话值不是使用加密安全随机数生成器生成的,并且您将在会话管理中引入应用程序中的漏洞。

如果您需要获取当前会话标识符,可以采用以下两种方式之一:

// 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;

详细了解here