User.IsOnline = true even after FormsAuthenticatio

2020-04-11 09:28发布

I have set UserIsOnlineTimeWindow ="2" in web.config then my logout() function has been modified as

public ActionResult LogOff()
    {

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

Still after returning to Home after Logout still the User.IsOnline = true

Only after idle time of 2 minutes User.IsOnline = false

How to make the user Offline at FormsAuthentication.SignOut(); Please help.

1条回答
Rolldiameter
2楼-- · 2020-04-11 10:31

Not sure if signOut is also considered as an activity.

I suggest you set the LastActivityDate after the SignOut method. And don't forget to update the user info.

like this:

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

I just tested in my App, it works.

查看更多
登录 后发表回答