SSO получить имя пользователя / домен - PullRequest
4 голосов
/ 04 апреля 2011

Я пытаюсь внедрить единый вход (SSO), но не могу получить правильное имя пользователя.

На моем месте, когда я получаю текущего пользователя, я получаю: USER@DOMAIN. Что правильно. Когда тот же код выполняется у клиента, он возвращает: USER@DOMAIN. Но в этой ситуации; это не правильно. Ожидаемое значение у клиента составляет USER@INTRANET.DOMAIN.

Я недостаточно знаком с SSO, чтобы что-то сказать о части INTRANET. У заказчика другое программное обеспечение также использует SSO, и поэтому требуется, чтобы «мое» программное обеспечение форматировало пользователя / домен в USER@INTRANET.DOMAIN.

Я пробовал несколько фрагментов кода, чтобы получить пользователя / домен вошедшего в систему пользователя. Результаты ниже от клиента.

UserPrincipal.Current.UserPrincipalName - returns user@domain 
System.Environment.UserDomainName - returns INTRANET
WindowsIdentity.GetCurrent.Name - returns INTRANET\user

Так что я ищу способ получить полное имя пользователя, вошедшего в систему в данный момент, с помощью «субдомена» (INTRANET). Кто-нибудь знает, что я делаю не так?

* Редактировать: * Я перефразировал мой вопрос. Я чувствую, что мой английский становится хуже с каждым днем ​​...: S

1 Ответ

2 голосов
/ 04 апреля 2011

Попробуйте следующий код.

string domainName = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;
string nametext = WindowsIdentity.GetCurrent().Name.Split('\\')[1];

//OR 
// string nametext = Environment.UserName;

string fullname = String.Format("{0}@{1}", nametext, domainName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...