即使在FormsAuthentication.SignOut()之后,User.IsOnline = true

时间:2012-03-29 01:37:54

标签: asp.net asp.net-mvc asp.net-membership

我在web.config中设置了UserIsOnlineTimeWindow =“2”,然后我的logout()函数被修改为

public ActionResult LogOff()
    {

        MembershipUser usr = Membership.GetUser();
        usr.LastActivityDate = DateTime.Now.AddMinutes(-2);
        FormsAuthentication.SignOut();
        return RedirectToAction("Index", "Home");
    }

在Logout退回Home后仍然是User.IsOnline = true

仅在2分钟的空闲时间后User.IsOnline = false

如何在FormsAuthentication.SignOut()中使用户脱机;请帮忙。

1 个答案:

答案 0 :(得分:4)

不确定signOut是否也被视为活动。

我建议你在SignOut方法之后设置LastActivityDate。并且不要忘记更新用户信息。

像这样:

MembershipUser usr = Membership.GetUser(false);
FormsAuthentication.SignOut();
usr.LastActivityDate = DateTime.Now.AddMinutes(-2);
Membership.UpdateUser(usr);

我刚刚在我的应用程序中测试过它。