|
dev
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Get current logged on userIs it possible to configure a Windows Service to:
1. Start the service when a user logs on (i.e. service not active before logon) 2. Determine the WindowsIdentity of the currently logged on user Niclas I have dealt with a similar situation before ... I never got the actual
identity of the user but using http://msdn.microsoft.com/library/default.asp?url=/library/en-us/termserv/TermServ/wtsgetactiveconsolesessionid.asp and http://msdn.microsoft.com/library/default.asp?url=/library/en-us/termserv/TermServ/wtsquerysessioninformation.asp I was able to get the name of the user (including fast switching for multiple users). Cheers, Greg Show quote "Niclas" wrote: > Is it possible to configure a Windows Service to: > > 1. Start the service when a user logs on (i.e. service not active before > logon) > > 2. Determine the WindowsIdentity of the currently logged on user > > Niclas > > > Did you take into account remote desktop and/or terminal services? This
would mean that several users have valid session concurrently... How did you deal with that screnario? Show quote "Greg Young" <GregYo***@discussions.microsoft.com> wrote in message news:68C833D0-A1A1-4F87-AD86-820C6A762629@microsoft.com... >I have dealt with a similar situation before ... I never got the actual > identity of the user but using > > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/termserv/TermServ/wtsgetactiveconsolesessionid.asp > and > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/termserv/TermServ/wtsquerysessioninformation.asp > > I was able to get the name of the user (including fast switching for > multiple users). > > Cheers, > > Greg > > "Niclas" wrote: > >> Is it possible to configure a Windows Service to: >> >> 1. Start the service when a user logs on (i.e. service not active before >> logon) >> >> 2. Determine the WindowsIdentity of the currently logged on user >> >> Niclas >> >> >> | 1. Start the service when a user logs on (i.e. service not active before You could use the ServiceControl control to start service when your app | logon) starts. Or put your app in the Startup folder. | 2. Determine the WindowsIdentity of the currently logged on user private void button18_Click(object sender, EventArgs e){ WindowsIdentity wi = WindowsIdentity.GetCurrent(); Console.WriteLine("Current User: " + wi.Name); foreach (IdentityReference ir in wi.Groups) { NTAccount acc = (NTAccount)ir.Translate(typeof(NTAccount)); Console.WriteLine("Member of: " + acc.Value); } } |
|||||||||||||||||||||||