2008-11-18 40 views
1

当用户进行登录时,我在缓存中插入了一些内容。在Session_End上从缓存中删除特定用户数据

现在我想在用户会话过期时将其从缓存中删除。 HttpContext是空的..所以我不知道会话过期的用户。我怎么能找到这个?

编辑:不幸的SessionID并没有给我太多。我在这种情况下所做的是使用处理AuthorizeRequest的HttpModule在Cache中插入当前用户名,以确保另一台机器的另一个用户无法登录。但会话在HttpModule中为空。所以我不能使用它。还有其他建议吗?

回答

1

处理global.asax中的Session_End事件。在这里您应该可以访问SessionID。

1

假设你访问的每个页面的缓存项,您可以设置缓存的项目有滑动到期。将到期时间设置为与会话超时相同。在滑动过期时,缓存将在每次访问该对象时刷新,并在该时间内没有被访问时将被丢弃。

查看http://msdn.microsoft.com/en-us/library/4y13wyk9.aspx了解更多信息。

相关问题