Не удалось пройти аутентификацию с помощью LdapConnection C# в IIS 7

Я пытаюсь пройти аутентификацию, используя активный каталог и С#. Код работает в IIS Express под Visual Studio 15, но когда я развертываю свой проект на сервере IIS, соединение LDAP возвращает следующую ошибку:

Предоставленные учетные данные недействительны

Вот код, который я использую:

public static dynamic AuthenticationUser(string username, string password)
{
    bool validation;
    try
    {
        var credentials = new NetworkCredential(username, password, "somedomain");
        var serverId = new LdapDirectoryIdentifier("someserver");
        LdapConnection conn = new LdapConnection(new LdapDirectoryIdentifier((string)null, false, false));

        conn.Credential = credentials;
        conn.AuthType = AuthType.Negotiate;
        conn.Bind(credentials);
        validation = true;
    }
    catch (LdapException ex)
    {
        validation = false;
        return ex.Message;
    }

Все в порядке, когда я отлаживаю Visual Studio, я могу проверить и подтвердить, что пользователь существует на сервере AD, но с сервером IIS возникает ошибка.

Обновлять

Я исправил эту проблему, отключив контроллер домена на сервере IIS.


person Eran Abir    schedule 04.05.2016    source источник
comment
Присоединен ли сервер к домену, отличному от вашего компьютера для разработки?   -  person Gabriel Luci    schedule 04.05.2016
comment
нет.. они в одном домене   -  person Eran Abir    schedule 05.05.2016
comment
Попробуйте установить AuthType на AuthType.Ntlm. Если это работает, то это указывает на проблему с Kerberos.   -  person Gabriel Luci    schedule 05.05.2016
comment
пробовал, но не повезло :\   -  person Eran Abir    schedule 08.05.2016
comment
Вы должны проверить этот раздел о проверке учетных данных и использовать PrincipalContext.ValidateCredentials метод. Это более эффективно.   -  person Nate B.    schedule 09.05.2016


Ответы (1)


Я исправил эту проблему, отключив контроллер домена на сервере IIS.

person Eran Abir    schedule 09.05.2016