Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.Net购物车-重复的会话ID_Asp.net_.net_E Commerce - Fatal编程技术网

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

ASP.Net购物车-重复的会话ID,asp.net,.net,e-commerce,Asp.net,.net,E Commerce,有人能告诉我这里发生了什么事吗?我在一个购物车网站的两台不同的机器、两个不同的浏览器上得到了重复的会话ID 我甚至用一个300个字符的随机字符串生成了一个新的会话id,但它们仍然被复制 这是新代码。。。只需取出旧代码的SyncLock内容: Dim _key As String = String.Empty SyncLock _locker _key = Guid.NewGuid().ToString() Session("Identifier")

有人能告诉我这里发生了什么事吗?我在一个购物车网站的两台不同的机器、两个不同的浏览器上得到了重复的会话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”)不是Session ID,但是,我们过去使用Session.SessionID作为“标识符”,并且它被复制了

为什么要生成自己的
SessionID

ASP.NET和浏览器可以在开箱即用的情况下完成这项工作,可能比您或我做得更好

我建议您改用此选项:


我找到了解决这个问题的办法

如果我将web.config中的会话管理器设置为我的类,那么它就工作了

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

我采取了一种不同的方法

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


我认为随机生成器不可信

会话是您自己生成的?您可以发布生成会话的代码吗?您需要发布一些代码,以便我们可以看到您的代码在做什么!会话ID是如何存储的?用于使用内置的session.SessionID,但是,我刚刚添加了一个同步锁,以查看这是否可以解决问题,我还关闭了IIS中.aspx页面的输出缓存。我们使用session.SessionID作为“购物车”的标识符。但是我们开始在机器上进行复制,所以我们开始生成一个随机长度的随机字母数字字符串,它仍然存在。我已经到处寻找这个问题,我看到的似乎是,我不是唯一一个…但是,我理解,我认为有相当大的几率,一个随机介于150到300个字符之间的随机字符串就可以做到这一点;)除此之外,什么都不管用。新Guid无效,会话ID无效。。。他们都生产duplicates@rickschott有许多关于生成重复会话id的报告,如果随机生成某个会话id,则无论使用何种技术,都有复制的机会(人员意见)