关闭浏览器时如何清空cache???
在网上找了个用cache做一个防止多用户用同一帐号同时登陆的处理,
但现在有个问题,关闭浏览器时cache并没清除,显示用户已登陆,要等cache过期后才能重新登陆,请问有办法解决这个问题吗?
原代码:
string key = TxtUser; //用户名文本框设为cache关键字
string uer = Convert.ToString(Cache[key]); //读取cache中用户相应的值
//判断cache中是否有用户的信息,如果没有相关的值,说明用户未登陆
if (uer == null || uer == String.Empty)
{
//定义cache过期时间
TimeSpan SessTimeout = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
//第一次登陆的时候插入一个用户相关的cache值,
HttpContext.Current.Cache.Insert(key, key, null, DateTime.MaxValue, SessTimeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);
Response.Redirect( "User/Login.aspx ");
}
------解决方案--------------------没有特别有效的方法,
不管是 Cache 还是其他方法,如数据库中做标识
虽然可以在客户端的 unload 事件中,通过 AJAX 方式向服务器发送一个请求,清除缓存/标识