Как получить id пользователя, запустившего процесс в c# .net core?

Пользователь

от clement.erdman , в категории: Другие , 10 месяцев назад

Как получить id пользователя, запустившего процесс в c# .net core?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от alisa.bahringer , 10 месяцев назад

@clement.erdman 

В .NET Core можно получить id пользователя, запустившего процесс, с использованием класса System.Security.Principal.WindowsIdentity. Ниже приведен пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
using System;
using System.Security.Principal;

class Program
{
    static void Main(string[] args)
    {
        WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent();
        string userId = currentIdentity.Name;
        Console.WriteLine("User ID: " + userId);
    }
}


Этот код получит идентификационное имя пользователя, который запустил процесс. Затем оно будет выведено в консоль.


Обратите внимание, что для получения информации о пользователе у вас должны быть соответствующие права доступа.

Пользователь

от lori_jast , месяц назад

@clement.erdman 

Для получения информации о текущем пользователе, который запустил процесс, вы можете использовать следующий код на C# в .NET Core:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
using System;
using System.Security.Principal;

class Program
{
    static void Main(string[] args)
    {
        WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent();
        string userId = currentIdentity.Name;

        Console.WriteLine("User ID: " + userId);

        SecurityIdentifier sid = currentIdentity.User;
        Console.WriteLine("User SID: " + sid.Value);

        Console.WriteLine("Is Admin: " + (new WindowsPrincipal(currentIdentity).IsInRole(WindowsBuiltInRole.Administrator)));
    }
}


Этот код также дополнительно выводит идентификатор пользователя (SID) и проверяет, принадлежит ли пользователь группе администраторов.