HttpContext.Current.Session.SessionID总是改变MVC4

时间:2015-11-26 05:58:47

标签: 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与alwasy不同。

如何以正确的方式检测。

1 个答案:

答案 0 :(得分:0)

首先,您需要了解每个浏览器的每个用户都维护会话。这意味着如果您使用chromefirefox以及IE的同一用户登录,则同一用户将拥有三个不同的会话。其次,如果您的Session.ID经常更改两个,那么您可能在web.config中将值设置为会话超时。请检查您的web.config并查找设置会话超时的代码。它应该在confiugration之下,然后在system.web之下,如下所示

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

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