Как получить «Компания» и «Офис» из Active Directory с помощью объекта UserPrincipal? - PullRequest
0 голосов
/ 26 февраля 2020

Как получить «Компания» и «Офис» из Active Directory с указанным UserPrincipal объектом?

1 Ответ

0 голосов
/ 26 февраля 2020

Если вам нужно прочитать атрибут, который класс UserPrincipal не предоставляет, тогда вам нужно использовать GetUnderlyingObject(), чтобы использовать базовый объект DirectoryEntry (то есть, что UserPrincipal используется в фоновом режиме. Это одна из причин, по которой я больше не беспокоюсь о UserPrincipal.

Атрибуты AD, которые вы ищете: company и physicalDeliveryOfficeName. Предполагая, что у вас есть UserPrincipal объект с именем user, вы должны сделать это следующим образом:

var underlyingObject = (DirectoryEntry) user.GetUnderlyingObject();

var company = underlyingObject.Properties.Contains("company") ?
    (string) underlyingObject.Properties["company"].Value :
    null;

var office = underlyingObject.Properties.Contains("physicalDeliveryOfficeName") ?
    (string) underlyingObject.Properties["physicalDeliveryOfficeName"].Value :
    null;

Вы используете Contains, чтобы убедиться, что атрибут находится в коллекции. атрибут пустой, он вообще не будет отображаться в коллекции Properties.

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