日期:2014-05-18  浏览次数:20401 次

关闭浏览器时如何清空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 方式向服务器发送一个请求,清除缓存/标识