Что не так с GetUserName Win32 API? - PullRequest
3 голосов
/ 05 июня 2009

Я использую GetUserName Win32 API для получения имени пользователя моего компьютера, но я обнаружил, что имя пользователя отличается (только в верхнем и нижнем регистре) при использовании моего VPN-подключения на работе, когда я был дома. Мне интересно, может ли VPN-клиент или другое программное обеспечение влиять на имя пользователя?

Ответы [ 3 ]

3 голосов
/ 05 июня 2009

API-интерфейс GetUserName :

Извлекает имя пользователя связанный с текущим потоком.

Используйте функцию GetUserNameEx для получить имя пользователя в указанном формат. Дополнительная информация предоставлено IADsADSystemInfo интерфейс.

Похоже, что GetUserName использует IADsADSystemInfo для получения информации.

Если вы посмотрите на интерфейс IADsADSystemInfo , вы увидите, что он имеет метод:

get_UserName
Получает Актив Справочник отличительного имени текущий пользователь, который вошел в систему пользователь или пользователь, выдавший себя за вызывающая тема.

Таким образом, когда вы подключаетесь через VPN к доменному имени входа, вы, скорее всего, получите отличительное имя Active Directory текущего пользователя, а когда нет, вы, скорее всего, получите имя пользователя, которое вы ввели (в любом случае, если вы ввели в) для входа на компьютер с помощью.

2 голосов
/ 13 января 2011

Этот API-интерфейс возвращает имя, введенное пользователем при входе в систему на компьютере. Поэтому, если мое имя пользователя - «esac», но я набираю «Esac», этот API вернет «Esac». Впоследствии, если я введу «ESAC», это то, что он также вернет.

0 голосов
/ 05 июня 2009

Не уверен на 100%, но я подозреваю, что GetUserName в конечном итоге будет разговаривать с DC, когда вы подключены к вашей доменной сети, тогда как в противном случае он будет использовать локальный ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...