如何在使用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不同。
那么,我如何确定哪一行用于会话?
这是随机生成的。您可以在中间件源代码
中看到这一点 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;
}