我在用户登录时在缓存中插入内容。

现在我想在用户会话到期时从缓存中删除它。 HttpContext为null ..所以我不知道会话过期的用户。我怎样才能找到这个?

编辑:很遗憾,SessionID并没有给我太多帮助。我在这种特殊情况下正在做的是使用一个处理AuthorizeRequest的HttpModule来在Cache中插入当前的userName,以确保来自另一台机器的另一个用户无法登录。但是HttpModule中的Session为null。所以我不能用它。还有其他建议吗?

有帮助吗?

解决方案

你可以在HttpModule中进入会话,你只需要等到它被初始化,即AcquireRequestState事件( http://msdn.microsoft.com/en-au/system.web.httpapplication.acquirerequeststate.aspx

其他提示

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

假设您正在访问每个页面上的缓存项目,您可以将缓存项目设置为具有滑动到期时间。将到期时间设置为与会话超时相同。使用滑动到期时,缓存将在每次访问对象时刷新,如果在该时间内未访问,则将被处理。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top