ASP.Net购物车 - 重复的会话ID

时间:2012-04-24 14:05:45

标签: asp.net .net e-commerce

谁能告诉我这里发生了什么?我在两个单独的机器,购物车网站中的两个不同的浏览器上获得了重复的会话ID?

我到目前为止已经生成了一个带有300个字符随机字符串的新会话ID,但它们仍然是重复的

这是新代码......只需取出旧代码的SyncLock内容:

    Dim _key As String = String.Empty
    SyncLock _locker
        _key = Guid.NewGuid().ToString()
        Session("Identifier") = Validations.GeneratePassword(150, 300)
        Session("SessionID") = _key
        Session("SiteID") = "F2630237-E355-4C8A-947E-BBAC97ECA550"
        Session("HomePage") = 13
    End SyncLock

是的我知道Session(“SessionID”)不是会话ID,但是,我们曾经使用Session.SessionID作为“Identifier”,并且它正在重复

3 个答案:

答案 0 :(得分:2)

为什么要生成自己的SessionID? ASP.NET和浏览器开箱即用,可能比你或我更好。

我建议你改用它:

HttpSessionState.SessionID

答案 1 :(得分:1)

我宁愿采取不同的方法

我创建了一个带有标识的表,每次需要会话ID,插入并存储在会话变量中

我认为随机生成器不可信任

答案 2 :(得分:0)

我找到了解决方案。

如果我将web.config中的会话管理器设置为我的类,并且它可以工作

<sessionState mode="InProc" cookieless="false" timeout="20" sessionIDManagerType="o7th.Projects.Core.SessionManager"/>