0

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

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

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

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

4

2 回答 2

1

一个快速的谷歌搜索显示了这个博客条目,它解释了如何在 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);
于 2012-11-15T09:33:49.963 回答
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;

在此处阅读更多相关信息。

于 2015-07-30T22:29:06.770 回答