Подключение к AD прекрасно работает в IIS, но не в VS - PullRequest
0 голосов
/ 11 октября 2019

Я использую следующий код, чтобы проверить, существует ли имя пользователя в AD, когда я отлаживаю приложение в VS, оно выдает исключение «неверное имя пользователя или пароль», но если я публикую точно такой же код в IIS, это работаетштраф, возвращая истину или ложь, как ожидалось

private bool UserExist(string path, string username)
        {
            DirectoryEntry entry = new DirectoryEntry(path);
            try
            {
                object obj = entry.NativeObject;
                DirectorySearcher search = new DirectorySearcher(entry);
                search.Filter = "(SAMAccountName=" + username + ")";
                SearchResult result = search.FindOne();
                if (null == result)
                {
                    return false;
                }
                else
                {
                    return true;
                }

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

1 Ответ

0 голосов
/ 11 октября 2019

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

Когда используется ApplicationPoolIdentity, он аутентифицируется как компьютер. Таким образом, если домен этого компьютера является доверенным в обоих доменах, он будет работать в обоих доменах.

Когда вы отлаживаете в Visual Studio с помощью IIS Express, он работает под своими собственными учетными данными. Если он работает для одного домена, а не для другого, это означает, что ваша учетная запись пользователя не является доверенной для одного домена.

У вас есть два варианта:

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

  2. Если ваш компьютер находится в том же домене, что и компьютер, о котором вы говоритеон работает, затем установите полный IIS на свой компьютер (не IIS Express), настройте сайт в IIS и настройте Visual Studio для отладки приложения в IIS . Таким образом, он не будет работать под вашими учетными данными при отладке.

...