Проблемы с разрешениями при доступе к Active Directory из веб-приложения ASP.NET? - PullRequest
1 голос
/ 15 июля 2011

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

Приложение использует dll (у меня есть только двоичный файл), который используется для получения строкового списка групп Active Directory, к которым принадлежит пользователь. Код работает в производственном режиме и когда я запускаю интерактивно в IDE VS2005, но не работает, когда я запускаю его локально в IIS.

Код такой. Взрывается на линии 127:

Line 127:            userGroups = new FW.DirectoryHelper(username).getGroups();
Line 128:            List<string> roles = new List<string>();
Line 129:            List<string> groups = new List<string>();

С этой ошибкой:

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

Это похоже на проблему с учетной записью ASPNET, не имеющей доступа к Active Directory, но почему она работает в интерактивном режиме, а не в IIS? Это потому, что когда я работаю в интерактивном режиме, я использую свои собственные учетные данные вместо учетной записи ASPNET? Почему он должен работать на других (например, UAT) серверах IIS, включая производственный, а не локальный?

Есть ли какая-то локальная конфигурация IIS или конфигурация безопасности Fodler, которую мне нужно сделать, чтобы она работала локально?

Двоичный файл, безусловно, используется в других местах моей компании; Я думаю, что это общая ИТ-утилита, которую никто не поддержит или не попытается найти кого-то, кто окажется трудным.

Мой локальный IIS был настроен с включенной аутентификацией Windows и анонимным отключением. Я также попробовал Windows Auth on и Anonymous ...

Ответы [ 4 ]

1 голос
/ 26 июля 2011

Код использует учетные данные для входа в Windows для ldap, на каком ПК запущена программа. Попробуйте настроить iis для анонимного доступа и создать для него учетную запись (возможно, фиктивную) с правами чтения ldap. И в вашем файле web.config вы захотите настроить эту анонимную учетную запись следующим образом:

<system.web>
<identity userName="DOMAIN\username" password="myPW"/>
</system.web>
1 голос
/ 25 июля 2011

Ваша проблема очень похожа на вопрос, на который я недавно ответил, они тоже использовали IIS 5.1.

Возможно ли получить данные из Active Directory, выдав себя за пользователя, прошедшего проверку подлинности Windows в ASP.NET? .

В своем ответе я приведу несколько возможных решений, которые вы, вероятно, захотите сделать, - использовать олицетворение ASP.Net.

0 голосов
/ 21 июля 2011

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

0 голосов
/ 15 июля 2011

Это IIS6 или 7?

Если II6 удостовериться, что удостоверение пулов приложений установлено на учетную запись домена.

Если IIS7 удостовериться, что в разделе «Основные настройки» установлено тоучетной записи домена.

Надеюсь, что это helpul.

...