Получение имени samAccountName в MVC Web App из Azure Active Directory - PullRequest
0 голосов
/ 19 октября 2018

У меня есть требование получить AD samAccountName в приложении MVC C #, которое развернуто в веб-приложении Azure.

Это приложение, прошедшее проверку подлинности Windows в Azure AD, которое синхронизируется с нашими локальными на локальных серверах AD с помощьюADConnect.

Когда мы запускаем веб-приложение локально (Visual Studio 2017), возвращаемое значение:

User.Identity.Name

возвращается в формате DOMAIN \ UserName

Но при просмотре WebApp в Azure тот же код возвращает его в формате firstname.lastname@domain.co.uk

Я ценю, что мы не сможем использовать User.Identity.Name для достиженияпоследовательный результат, но нам нужен способ получения этой информации, когда сайт работает на Azure.

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

Я пытался дать как можно больше информации, но я работаю вместе с нашей командой по инфраструктуре, поэтому, возможно, не предоставилдостаточно, пожалуйста, дайте мне знать, если потребуется дополнительная информация.

1 Ответ

0 голосов
/ 19 октября 2018

Формат "firstname.lastname@domain.co.uk" будет атрибутом userPrincipalName учетной записи.Так что, если вы видите «@» в имени, вы можете подключиться к AD, найти учетную запись и нажать sAMAccountName.Как то так:

var searcher =
    new DirectorySearcher(
        new DirectoryEntry("LDAP://domain.co.uk"),
        $"(&(objectClass=user)(userPrincipalName={User.Identity.Name}))");
searcher.PropertiesToLoad.Add("sAMAccountName");
var result = searcher.FindOne();
var sAmAccountName = result.Properties["sAMAccountName"][0] as string;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...