如何在使用SQL Sever会话存储时确定会话ID

本文关键字:会话 存储 ID Sever SQL | 更新日期: 2023-09-27 18:18:24

我按照这个指南设置Sql Server作为我的Session数据存储。

我注意到Sessions表有一个ID列。我希望我可以使用这个ID列来确定正在使用的当前会话(Sessions表中的行)。但是,我不知道这个ID是如何生成的,也不知道ASP是如何生成的。NET Core在后台将这个ID匹配到会话。

我尝试使用HttpContext.Session.Id,但它与数据库中的ID不同。

那么,我如何确定哪一行用于会话?

如何在使用SQL Sever会话存储时确定会话ID

这是随机生成的。您可以在中间件源代码

中看到这一点
        if (string.IsNullOrWhiteSpace(sessionKey) || sessionKey.Length != SessionKeyLength)
        {
            // No valid cookie, new session.
            var guidBytes = new byte[16];
            CryptoRandom.GetBytes(guidBytes);
            sessionKey = new Guid(guidBytes).ToString();
            cookieValue = CookieProtection.Protect(_dataProtector, sessionKey);
            var establisher = new SessionEstablisher(context, cookieValue, _options);
            tryEstablishSession = establisher.TryEstablishSession;
            isNewSessionKey = true;
        }