It seems to me that his problem is this. What is to stop user 'A'
walking away from the system, not logging out, and user 'B' starts
using it? Now user 'B' is working under user 'A's logon. That is what
he wants to prevent, IMO. If so, it doesn't matter whether he uses
normal workgroup-based security, or some other (custom) method.
Here's what I'd do. Define the "maximum amount of work" that a user can
perform before he must "revalidate" himself.
* The "maximum amount of work" might be 1,000 keystrokes, or data
entry of 50 records, or 30 minutes elapsed time, or whatever.
* When that amount has expired, make the user retype his password.
If the retyped password is correct, you have little option but to
assume that the originally logged-in user, is still around. Conversely,
if the retyped password is *not* correct, you can assume that the
cxurrent user is working on someone else's login, so the system should
take action accordingly.
If you are using normal workgroup security, the following code will ask
the current user to retype his password. If the password is not
correct, the system will quit back to Windows.
(UNTESTED)
dim sPwd as string, ws as workspace
sPwd = inputbox ("Retype your password")
on error resume next
set ws = dbengine.createworkspace ("", currentuser(), sPwd)
if err.number <> 0 then
msgbox "wrong; goodbye!"
application.quit
endif
on error goto 0
Obviously you'ld want to give the user several tries (not just one, as
coded above) - but you get the idea.
HTH,
TC