Откуда user.identity.name (С#) получает свое значение?

Я почти уверен, что он не получает его из AD, хотя мы используем AD для внутреннего использования. Проблема, с которой я сталкиваюсь, связана с приложением, которое получает текущее имя пользователя с помощью user.identity.name и использует @mycompany.com, а затем использует его для отправки электронных писем из приложения. Проблема в том, что некоторые люди с более чем 20-символьными именами не могут отправить электронное письмо, потому что их имя обрезается. Итак, я предполагаю, что user.identity.name захватывает SAMAccountName. Я собираюсь исправить это, взяв userPrincipalName из AD, но я надеюсь проверить, получает ли user.identity.name свое значение из samaccountname.

РЕДАКТИРОВАТЬ, чтобы добавить больше информации. В данном конкретном случае это приложение WinForms, работающее на внутреннем сервере. Мы используем Forms Authentication для аутентификации против AD (по крайней мере, так мне объяснили). Итак, если в этом случае user.identity.name на самом деле извлекается из AD, есть ли способ указать имя участника-пользователя вместо имени учетной записи sam?


person BattlFrog    schedule 11.09.2014    source источник


Ответы (1)


Зависит от того, где вы его используете. В стандартном (WinForms) приложении это происходит из ОС в зависимости от того, кто входит в систему. Это могло произойти из AD, если пользователь является частью домена. Или это может быть только из внутреннего списка определенных пользователей ОС.

Для веб-приложения он исходит от AuthenticationProvider, который также может получить его из AD или из базы данных и т. д.

person James Curran    schedule 11.09.2014