The only problem with either of these is that if your network goes ga-ga then you will have no clue as to who is in the DB right now.
What I did was have a switchboard form that wrote an entry in a "visits" table when you loaded the form. Since it was a startup form, you had no choice BUT to load it.
If you were admin or user, didn't matter. The form never went away. If you hit my switchboard's "close" button, you didn't close it, you just minimized and hid it. Then, when you exited, the form-exit event allowed me to write another "leaveing" record to the visits table.
I also had some automation such that if you tried to get in and the DB saw "entering" but no "leaving" - it synthesized a marker in that table that said, in effect, "must have missed the 'leaving' event."