2012-04-24 103 views
1

任何人都可以告诉我这里发生了什么吗?我正在购买购物车网站上的2个不同的浏览器中获取重复的会话ID?ASP.Net购物车 - 重复会话ID

我竟然产生一个新的会话ID与超过300个字符的随机字符串消失了,他们仍然得到复制

这是新的代码......刚取出的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 

是的,我知道会议(“会话ID”)是不是会话ID,但是,我们习惯使用Session.SessionID的“标识符”,它是越来越重复

+0

你产生自己的会话?你能发布生成会话的代码吗? – Steven 2012-04-24 14:08:20

+0

你需要发布一些代码,以便我们可以看到你的代码在做什么!会话ID如何存储? – Tim 2012-04-24 14:09:04

+0

用于使用内置的Session.SessionID,但是,它发生在 – Kevin 2012-04-24 14:24:55

回答

0

我找到了解决这个。

假如我在web.config中的会话管理器是我的课,和它的工作

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

为什么你会生成你自己的SessionID
ASP.NET和浏览器做出来的箱子,可能是你最好还是一

我建议你用这个来代替:

HttpSessionState.SessionID

+0

我们用于使用Session.SessionID作为“购物车”的标识符。但是我们开始在机器上获得重复数据,所以我们随机生成一个随机长度,随机字母数字字符串,并且它仍然发生 – Kevin 2012-04-24 14:26:00

+0

我已经搜索过这个问题,而且看起来我所看到的是,我不是只有一个... – Kevin 2012-04-24 14:28:47

+0

随机不一定是唯一的。 – jrummell 2012-04-24 14:29:55

1

我宁愿做一个不同的方法

我创建了一个表,身份,每当时间需要一个会话ID,插入由并将其存储在会话变量

我想随机生成不能被信任