Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Логгирование действий пользователя


Автор: Nudnik 13.9.2008, 12:22
У меня программа которая фиксирует действия пользователя с файлами используя FileSystemWatcher. Допустим на компьютере есть 2 пользователя A и B. 

Допустим сейчас залогинен пользователь A. У него включилась моя прога и она фиксирует все его действия с файлами. Через некоторое время пользователь разлогинивается и логинится пользователь B и он тоже выполняет какие-то действия с файлами.

Моя программа пишет в лог все действия пользователя с файлами + имя пользователя который эти действия выполняет (имя пользователя я получаю через класс Environment). 

Проблема вот в чем. Когда пользователь A разлогинился и залогинился пользователь B, то если пользователь B начинает манипуляцию с файлами, то в логах пишется, что как будто это выполняет пользователь A, то есть переменная окружения через класс Environment возвращает, что это пользователь А (ну это ясно, так как прога была запущена под пользователем A). 

Как мне правильно узнавать какой пользователь сейчас работает на компе?

Запускать под каждым пользователем отдельную копию проги не прёт, так как прога запущенная под другим пользователем продолжает логгировать действия текущего пользователя.

Автор: Bishop 13.9.2008, 16:17
Nudnik
Код
System.Security.Principal.WindowsIdentity.GetCurrent().Name

?

Автор: Nudnik 13.9.2008, 22:15
Цитата(Bishop @ 13.9.2008,  16:17)
Nudnik
Код
System.Security.Principal.WindowsIdentity.GetCurrent().Name

?

Нет, к сожалению также выводит имя пользователя, под которым была запущена прога...

Автор: Partizan 15.9.2008, 07:44
Nudnik, Environment.CurrentUser?

Автор: shmarov 15.9.2008, 13:47
Как вариант - если работаешь с MS SQL можно сделать так (с учётом win-авторизации):

Код

select @@spid   --Идентификатор авторизованного пользователя
exec sp_who   --Список авторизованных пользователей


Ну а дальше - определяешь по идентификатору кто именно залогинен

Автор: Nudnik 18.9.2008, 06:30
Цитата(Partizan @ 15.9.2008,  07:44)
Nudnik, Environment.CurrentUser?

Тоже к сожалению показывает имя пользователя, под которым была запущена программа, а не имя пользователя, который сейчас активен в системе....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)