C# - WebForms - 可以复制HttpContext.Current.SessionID吗?

Riz*_*Riz 3 c# asp.net session

当用户登录我的网站时,我将HttpContext.Current.SessionID存储在我的用户日志表中.我想确保这可以重复吗?如果是,我想在数据库中使列唯一.如果它可以复制,那么从会话中获取的任何东西都将是唯一的,并且将来永远不会像GUID一样重新生成?

fox*_*oxy 8

HttpContext.Current.SessionID对于当前的会话集,它将是唯一的- 也就是说,每个会话ID在活动时都是唯一的.但是,一旦会话到期,就无法保证新会话不会具有相同的ID.如果是这种情况,任何持久性数据(基于会话ID)现在将引用不同的会话.

另请注意MSDN页面中的以下评论.

SessionID值由ASP.NET随机生成,并存储在浏览器中的非过期会话cookie中.然后,在每个请求到ASP.NET应用程序的cookie中发送SessionID值.

但是,如果cookie被清除,会话将重新启动.

SessionID在服务器和浏览器之间以明文形式在cookie或URL中发送.因此,不需要的源可以通过获取SessionID值并将其包含在对服务器的请求中来访问另一个用户的会话.如果您在会话状态中存储私人或敏感信息,建议您使用SSL加密浏览器和包含SessionID的服务器之间的任何通信.