2010-11-23 2 views
17

У меня действительно нет насущной причины задать этот вопрос, кроме любопытства, - используя C#, есть ли способ определить из кода, в котором работает мой процесс? Для иллюстрации использования кода:Определите из кода, в котором пользователь мой процесс работает как

static void Main(string[] args) 
{ 
    string userID; 
    //what goes here to fill in this userID variable? 
    Console.out.WriteLine(string.Format("This process is running as {0}.", userID)); 
} 

ответ

35
string userID = WindowsIdentity.GetCurrent().Name 

От MSDN: WindowsIdentity.GetCurrent() и WindowsIdentity.Name

+1

И это не просто получение того, с кем я вошел в систему, он будет возвращать LOCAL SYSTEM или NETWORK SERVICE или тому подобное, если процесс работал под одной из этих учетных записей? – Zannjaminderson 2010-11-23 21:05:51

1

Есть множество способов, в зависимости от того, какого типа приложения вы работаете.

Here's an article об использовании принципа Thread для проверки пользовательских данных/авторизации.

This thread содержит несколько других подходов, хотя и не очень подробно.

Смежные вопросы