猿问

ASP.NET单点登陆

我做好了一个单点登陆,但是发现如果用户不点击退出按钮而是直接关闭浏览器那登陆过的用户就不能再登陆系统,下面这是我单点登陆所用的代码

Session["sKey"] = txtUserName.Text;
                                string sUser = Convert.ToString(Cache[Session["sKey"].ToString()]);
                if (sUser == null || sUser == String.Empty)
                {
                    TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
                    HttpContext.Current.Cache.Insert(Session["sKey"].ToString(), Session["sKey"].ToString(), null, DateTime.MaxValue, SessTimeOut,
                    System.Web.Caching.CacheItemPriority.NotRemovable, null);
                    Response.Redirect("Default.aspx");
                }
                else
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "js1", "alert('该帐号已经登陆了该系统,不能重新登陆!');", true);
                    return;
                }

劳烦各位大虾,请问当用户登陆之后关闭浏览器怎么释放掉Cache呢


饮歌长啸
浏览 562回答 2
2回答

慕田峪7331174

在global.asax里面的session_end事件里清楚掉相应的cache就行了!
随时随地看视频慕课网APP
我要回答