即使在RemoveAll之后,会话也不会被清除

时间:2011-05-25 07:04:54

标签: asp.net-mvc-2 session

        Session.Clear();
        Session.Abandon();
        Session.RemoveAll();

        System.Web.Security.FormsAuthentication.SignOut(); 

我正在做这么多代码

仍然

HttpContext.Current.Session["User"]  is not null

:(

2 个答案:

答案 0 :(得分:3)

您无需同时拨打ClearRemoveAll。以下是RemoveAll的实施方式:

public void RemoveAll()
{
    this.Clear();
}

这里还引用了KB 899918

  

当Web应用程序需要时   登录并提供注销页面或   选项,我们建议您清除   用户拥有的会话状态   从网站上注销。清除   会话状态,调用   Session.Abandon方法。该   Session.Abandon方法允许您刷新   会话状态无需等待   会话状态超时。通过   默认情况下,此超时为20分钟   滑动到期。到期时间是   每次用户刷新   向网站提出请求   提供会话ID cookie。该   放弃方法在中设置标志   会话状态对象,指示   会话状态应该是   弃。检查旗帜   然后在页面的末尾采取行动   请求。 因此,用户可以使用   页面中的会话对象   你称之为Abandon方法。尽快   当页面处理完成时,   会议被删除。

答案 1 :(得分:0)

尝试使用适用于我的session.flush();。 不确定它是否可以帮到你。