1

ここで何が起こっているのか誰か教えてもらえますか?ショッピングカートのWebサイトで、2つの別々のマシン、2つの異なるブラウザ間でセッション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ではないことは知っていますが、以前は "Identifier"にSession.SessionIDを使用していたため、重複していました。

4

3 に答える 3

2

なぜ独自の を生成するのSessionIDですか?
ASP.NET とブラウザーはこれをすぐに実行でき、おそらくあなたや私よりも優れています。

代わりにこれを使用することをお勧めします。

HttpSessionState.SessionID

于 2012-04-24T14:10:14.707 に答える
0

これに対する解決策を見つけました。

web.config でセッション マネージャーを自分のクラスに設定し、それが機能した場合

<sessionState mode="InProc" cookieless="false" timeout="20" sessionIDManagerType="o7th.Projects.Core.SessionManager"/>
于 2012-06-27T17:58:16.620 に答える