Как сделать запрос AD, чтобы получить имя электронной почты от Lan ID - PullRequest
1 голос
/ 13 мая 2010

У меня есть некоторый код на asp.net (любезно предоставленный кем-то другим) для запроса AD, чтобы получить имя пользователя, адрес электронной почты и т. Д.

using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
using ActiveDs;

        DirectorySearcher search = new DirectorySearcher(new DirectoryEntry(), string.Format("(samaccountname={0})", id));
        if (search == null)
            return id;
        if (search.FindOne() == null)
            return id;
        DirectoryEntry usr = search.FindOne().GetDirectoryEntry();
        IADsUser oUsr = (IADsUser)usr.NativeObject;
        return string.Format("{0} {1}", usr.Properties["givenname"].Value, usr.Properties["sn"].Value);

Однако для этого требуется олицетворение с идентификатором, который необходимо изменить.каждые 2 недели, а затем обновляется в файле web.config, который часто забывают

Есть ли какой-либо код без олицетворения для достижения того же результата?

ОБНОВЛЕНИЕ - это инструмент конфигурации, и он ищет имя, идентификатор электронной почты и т. д. Мне нравится идея службы A / C

Q - Как можно запустить (олицетворять) только код AD с помощью "службы" A / C?какие-либо образцы / код?

как вы имперсону

Ответы [ 3 ]

1 голос
/ 13 мая 2010
  1. Для вашей конкретной цели в AD необходимо добавить ServiceAccount;
  2. Если ваше приложение ASP.NET предназначено для локальной сети в вашей организации, вы можете просто забыть о предоставлении имени пользователя и пароля и указать только корневой домен. Таким образом, Active Directory будет искать аутентифицированного пользователя Windows вместо использования олицетворения (это предполагает, что пользователь, обращающийся к вашему приложению, имеет права на выполнение задач, предоставляемых вашим приложением).

Что именно должно делать ваше приложение?

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

0 голосов
/ 13 мая 2010

Обычно мы просим ИТ предоставить нам учетную запись службы домена. Вам по-прежнему необходимо выдавать себя за другого, но при наличии учетной записи службы пароль не нужно будет менять каждые 2 недели, и ему будут предоставлены определенные права для конкретной функции, для которой он нужен, поэтому для вас это будет означать очень низкие затраты на обслуживание. *

0 голосов
/ 13 мая 2010

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

Думайте о имени пользователя / пароле как о части строки подключения к базе данных. Я бы запросил сложное имя пользователя и пароль у администратора вашего домена и попросил, чтобы они дали ему ограниченные права входа в систему и установили, что пароль никогда не истечет. Затем сохраните и используйте их в своем файле Web.config.

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