AuthenticationType Negotiate vs NTLM - PullRequest
       4

AuthenticationType Negotiate vs NTLM

4 голосов
/ 10 января 2011

У меня одна и та же кодовая база, используемая на 2 разных сайтах, размещенных на одном сервере (IIS 7.5).

По какой-то причине, когда я проверяю свойство Identity.AuthenticationType в коде за обработчиком http, я вижу NTLM для одного сайта и Согласование для другого. Это вызывает некоторые проблемы, и мне нужно, чтобы они оба использовали NTLM.

Не могли бы вы помочь мне понять, почему эта разница? Пока я вижу, что оба сайта IIS настроены одинаково, но, конечно, есть как минимум 1 отличие, которое я не смог обнаружить. Спасибо!

EDIT
Я использовал эту ссылку, которая содержит инструкции по удалению поставщика "Negotiate" из IIS. Это не сработало для меня. Я выполнил

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /-"providers.[value='Negotiate']" /commit:apphost

Может быть, я сделал что-то не так, но это не помогло. Я все еще вижу «Согласовать» как AuthenticationType

Проблема в том, что я устанавливаю учетные данные олицетворения web.config, но не использую их. Вместо того, чтобы использовать предоставленные мной учетные данные, он использует анонимного пользователя.

И что-то странное в том, что windowsAuthentication отключена. Я думал, что «согласование» использовалось только windowsAuthentication.

Ответы [ 4 ]

2 голосов
/ 09 августа 2011

При согласовании будет выбрана внутренняя аутентификация Ntlm или Kerberos.Если на сайте написано Ntlm, будет выбрана только аутентификация Ntlm.Пожалуйста, проверьте оба сайта и сделайте так, чтобы аутентификация была одинаковой.

1 голос
/ 16 января 2014

Аутентификация Windows должна быть включена и анонимная аутентификация отключена, чтобы получить вошедшего в систему пользователя (здесь я предполагаю, что вы проходите аутентификацию в домене и не хотите использовать анонимного пользователя, если пользователь этого не делает) авторизованные учетные данные с использованием аутентификации Windows).

В IIS7.5, чтобы увидеть используемых провайдеров, нажмите Аутентификация, щелкните правой кнопкой мыши Аутентификация Windows и выберите провайдеров. У вас будет список включенных провайдеров, порядок важен. Попробуйте убедиться, что они оба одинаковы (в вашем случае NTLM вверху списка).

Извините за поздний ответ!

0 голосов
/ 04 сентября 2013

Если ваша версия Internet Information Server (IIS) 7.0, загляните в файл <% SystemDrive%> / Windows / System32 / inetsrv / config / ApplicationHost.config для такого раздела:

<system.webServer> 
    <security> 
        <authentication> 
            <windowsAuthentication enabled="false">
                <providers>
                    <add value="Negotiate" />
                    <add value="NTLM" />
                </providers>
            </windowsAuthentication>
        </authentication> 
    </security> 
</system.webServer>

Документация для провайдеров аутентификации Windows может содержать более подробную информацию.

Вопрос Удалить NEGOTIATE из WindowsAuthentication в IIS содержит инструкции по удалению Negotiate, которые я нашел полезными, когда пытался повторно включить Negotiate.

0 голосов
/ 12 января 2011

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

По умолчанию включен только анонимный доступ.

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