我在ASP.net 3.5 C#中工作。我想要做的是当调用Session_End事件时,我想更新当前用户已通过任何方式注销的数据库中已登录用户的状态(手动注销,会话超时等等。它调用Session_End事件)。问题是我不能保持UserID。我无法访问Session变量,因为会话已经过期cookie也适合我。
请提出解决方案。
非常感谢
此致 的Vivek
答案 0 :(得分:0)
尝试将UserID推送到ViewState,如果您有一个BasePage,您的所有页面都是从该页面继承的,或者如果您使用MasterPage,那么将UserID推送到每个页面上的viewstate应该非常容易。 Cookie应该超越会话生命。您是否为Cookie设置了到期时间?
答案 1 :(得分:0)
您应该能够在Session_End事件中访问会话变量。 Session_End事件结束后,会删除存储在会话中的所有数据。但是你应该小心,因为会话是为所有访问者创建的。如果您在会话中存储UserID,那么如果有人查看了登录页面但没有登录,则它在Session_End内可以为null。不建议将会话超时设置为天,因为这些会话可能会填满所有服务器内存。