я следующий блок кода, который запрашивает Active Directory для пользователей по имени группы с помощью System.DirectoryServices.AccountManagement
:Получение ошибки Запрос Active Directory только на сервере
var domainContext = new PrincipalContext(ContextType.Domain, "company.container.internal");
var groupPrincipal = GroupPrincipal.FindByIdentity(domainContext, IdentityType.Name, "Lvl1Users");
if (groupPrincipal != null)
{
//Read the values
}
Теперь сайт использует следующее:
- IIS7 на Win2k8
- подлинности Windows
- олицетворения = True
- App Pool на .NET 4.0 с использованием «NETWORK SERVICE» в качестве учетной записи
На моей локальной машине (вы знаете, как это происходит) все отлично работает. Мои сверстники, которые пробуют его локально, также хорошо работают. Однако после развертывания на сервере он показывает следующее:
Произошла ошибка в работе.
Все, что я изучаю, говорит, что это вопрос с разрешениями. 1 вещь, чтобы отметить, на моей локальной машине я на домене MainNetwork
, который является родительским доменом company.container.internal
, который я запрашиваю. Машина IIS находится на company.container.internal
и запрашивает тот же домен. Честно говоря, я думаю, что более сложной ситуацией является чтение AD на моей локальной машине, которая находится в другом домене, но она работает. На сервере, который запрашивает тот же домен, он терпит неудачу.
Вот что я пытался, и ни один из них не работал:
- Изменение AppPool к «LocalSystem»
- Изменить AppPool использовать статический супер-пупер учетную запись администратора
- Используется олицетворение кода для управления контекстом вызовов в локальном блоке с пользователем администратора в домене
MainNetwork
. - Используется олицетворение кода для управления контекстом вызовов в локальном блоке с пользователем admin в домене
company.container.internal
. - Добавление в
using (HostingEnvironment.Impersonate())
Что дает здесь? Я пробовал выдавать себя за каждого типа полномочий администратора в обоих доменах и использовал несколько параметров AppPool, и я продолжаю получать ту же ошибку. Есть ли что-то, что необходимо изменить в коде с объявлением доменов, или есть проблема с правами доступа, которые я пропускаю?