IIS7 ASP.NET进程中会话在应用程序回收后不会丢失

IIS7 ASP.NET进程中会话在应用程序回收后不会丢失,asp.net,session,iis-7,session-state,Asp.net,Session,Iis 7,Session State,我有一个ASP.NET MVC应用程序在IIS7下运行。它使用默认的进程会话管理,根据我所读到的所有内容,在应用程序池回收后,它应该会丢失用户会话。 但它似乎并没有失去它。即使IIS重置也不会丢失会话。 IIS7中是否发生了使会话保持活动状态的更改?这是由于cookie replay造成的-发生的情况是,浏览器发送的cookie带有旧的身份验证票证,该票证被接受为新会话,因为Web服务器未存储有效和过期的身份验证票证以供以后比较。如果恶意用户获得有效的表单身份验证cookie,则会使您的站点容易

我有一个ASP.NET MVC应用程序在IIS7下运行。它使用默认的进程会话管理,根据我所读到的所有内容,在应用程序池回收后,它应该会丢失用户会话。 但它似乎并没有失去它。即使IIS重置也不会丢失会话。
IIS7中是否发生了使会话保持活动状态的更改?

这是由于cookie replay造成的-发生的情况是,浏览器发送的cookie带有旧的身份验证票证,该票证被接受为新会话,因为Web服务器未存储有效和过期的身份验证票证以供以后比较。如果恶意用户获得有效的表单身份验证cookie,则会使您的站点容易受到重播攻击。要提高使用表单身份验证cookie时的安全性,请参阅下面的MSDN链接:


回收后,您是否确实看到了相同的会话数据,或者只是相同的会话ID?能否从web.config提供会话配置部分?听起来您使用的是状态服务器或sql server,而不是proc server中的默认值。@stevemegson。可能只是会话ID。我可能误解了会话数据的存储方式。用户在应用程序回收后仍然登录,但我不会在会话中存储任何其他数据。不过,用户应该注销,不是吗,因为服务器应该会丢失会话ID?@D Hoerster很好,很简单:
@Fibble:在会话中放置一些内容,响应。将其写入页面,循环使用应用程序,然后查看值是否再次返回,或者作为另一个测试,您是否得到了空引用异常。这可能是在IIS 7上处理登录的方式——老实说,我不知道,但出于好奇,我会尝试上面的方法。PS-确保您没有在当前页面的页面加载中设置该值(然后确保它仍然存在)。那是我以前在类似的事情上咬过的。此外,您的登录cookie是否与在应用程序周期中保持登录有关?