Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/88: Рейтинг темы: голосов - 88, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 5

Узнать имя пользователя

10.02.2017, 15:58. Показов 18393. Ответов 5
Метки wmi (Все метки)

Студворк — интернет-сервис помощи студентам
Как узнать имя пользователя, под которой я вошел в систему, если приложение запущено от имени администратора?
System.Environment.UserName показывает имя пользователя админа, мне нужно именно имя текущего пользователя системы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.02.2017, 15:58
Ответы с готовыми решениями:

Как узнать имя текущего пользователя?
Ave! Не подскажите как можно узнать имя пользователя пк. Мне нужно что бы программа знала имя пользователя. То есть была переменная с...

Как узнать имя пользователя который изменил файл последним?
Как узнать имя пользователя который изменил файл последним? Собственно сабж. Копал MSDN FileInfo и File нарыл только FileAcces, но...

Как узнать имя процесса, зная имя программы?
Здравствуйте, подскажите пожалуйста, как узнать имя процесса выполняемой программы, зная имя этой программы в c#? P.S. Если это...

5
 Аватар для Людвиг Бодмер
378 / 375 / 213
Регистрация: 29.03.2013
Сообщений: 867
10.02.2017, 16:03
Ozilly,
C#
1
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
1
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 5
10.02.2017, 16:07  [ТС]
Неа, этот способ тоже пробовал. Пишет admin, хотя я нахожусь в пользователе User08
0
 Аватар для Людвиг Бодмер
378 / 375 / 213
Регистрация: 29.03.2013
Сообщений: 867
10.02.2017, 16:20
Лучший ответ Сообщение было отмечено Ozilly как решение

Решение

Ozilly, а этот способ? :
C#
1
2
3
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
ManagementObjectCollection collection = searcher.Get();
string username = (string)collection.Cast<ManagementBaseObject>().First()["UserName"];
1
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 5
10.02.2017, 16:27  [ТС]
То что нужно, спасибо!
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18282 / 14205 / 5368
Регистрация: 17.03.2014
Сообщений: 28,884
Записей в блоге: 1
10.02.2017, 16:50
Ozilly, попробуй еще такой вариант - через WTSQuerySessionInformation. Через WMI я бы не стал делать т.к. это обычно медленно работает.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public static string GetSessionUserName()
{
    int sessionId = Process.GetCurrentProcess().SessionId;
    IntPtr ptrBuffer;
    uint bytesReturned;
    if (WTSQuerySessionInformation(IntPtr.Zero, sessionId, WTSInfoClass.WTSUserName, out ptrBuffer, out bytesReturned) && ptrBuffer != IntPtr.Zero)
    {
        string username = Marshal.PtrToStringAnsi(ptrBuffer);
        WTSFreeMemory(ptrBuffer);
        if (WTSQuerySessionInformation(IntPtr.Zero, sessionId, WTSInfoClass.WTSDomainName, out ptrBuffer, out bytesReturned) && ptrBuffer != IntPtr.Zero)
        {
            username = Marshal.PtrToStringAnsi(ptrBuffer)+"\\"+username;
            WTSFreeMemory(ptrBuffer);
        }
        return username;
    }
 
    return null;
}
 
[DllImport("Wtsapi32.dll")]
static extern bool WTSQuerySessionInformation(IntPtr hServer, int sessionId, WTSInfoClass wtsInfoClass, out IntPtr ppBuffer, out uint bytesReturned);
 
[DllImport("wtsapi32.dll", ExactSpelling=true, SetLastError=false)]
static extern void WTSFreeMemory( IntPtr memory );
 
enum WTSInfoClass
{
    /// <summary>
    /// A null-terminated string that contains the name of the user associated with the session.
    /// </summary>
    WTSUserName = 5,
 
    /// <summary>
    /// A null-terminated string that contains the name of the domain to which the logged-on user belongs.
    /// </summary>
    WTSDomainName = 7
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2017, 16:50
Помогаю со студенческими работами здесь

Узнать имя пользователя
Добрый день, подскажите пожалуйста как узнать имя пользователя. Как по мне это относиться к разряду Win API функций, а в этой области я...

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

Как узнать имя пользователя из ОС
Как узнать имя пользователя из ОС в Access-е. Какую библиотеку использовать. Как узнать какие функции есть в этой библиотеке, где искать...

Узнать имя текущего пользователя
Здравствуйте! Не подскажете в одном деле. Нужно узнать какой пользователь вошел в компьютер. Сохранить это имя в какой-нибудь переменной....

Узнать автоматически имя пользователя.
Господа, какие есть возможности автоматически узнать имя пользователя зашедшего на страницу. Требуется или имя пользователя Windows а еще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru