Asp.net mvc 4 HttpContext.Current.Session.SessionID始终在更改MVC4

Asp.net mvc 4 HttpContext.Current.Session.SessionID始终在更改MVC4,asp.net-mvc-4,Asp.net Mvc 4,我想检测用户从其他系统登录的位置。我试过一些代码。那是 登录后 1) 将System.Web.HttpContext.Current.Session.SessionID保存到数据库中 2) 在数据库中匹配此值。如果会话值不同,它将发送电子邮件 但是System.Web.HttpContext.Current.Session.SessionID在从同一系统登录时总是不同的。我是从Chrome登录的,System.Web.HttpContext.Current.Session.SessionID一直

我想检测用户从其他系统登录的位置。我试过一些代码。那是

登录后 1) 将System.Web.HttpContext.Current.Session.SessionID保存到数据库中 2) 在数据库中匹配此值。如果会话值不同,它将发送电子邮件

但是System.Web.HttpContext.Current.Session.SessionID在从同一系统登录时总是不同的。我是从Chrome登录的,System.Web.HttpContext.Current.Session.SessionID一直是不同的


如何以正确的方式进行检测。

首先,您需要了解会话是按每个浏览器的每个用户维护的。这意味着如果您与同一用户从
chrome
firefox
IE
登录,您将为同一用户提供三个不同的会话。其次,如果您的
Session.ID
经常更改两次,您可能会在web.config中将较小的值设置为Session timeout。请检查您的
web.config
,并查找设置会话超时的代码。它应该在
configuration
下,然后在
system.web
下,如下所示

<configuration>
  <system.web>
     <sessionState timeout="20"></sessionState>
  </system.web>
</configuration>


上面的代码将会话超时设置为20分钟。

如果使用相同的浏览器会发生什么。会话是否相同?是的,对于同一浏览器,除非超时,否则会话应保持不变