3

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.

Joel Coehoorn
  • 399,467
  • 113
  • 570
  • 794
vikki_logs
  • 1,521
  • 2
  • 10
  • 21

1 Answers1

4

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.

Robby Shaw
  • 4,725
  • 1
  • 14
  • 11