Подтвердить что ты не робот

Аутентификация Windows не работает в IIS 7.5

У меня возникла проблема с получением проверки подлинности Windows для работы с IIS 7.5. Приложение является внутренним сайтом, созданным в asp.net MVC 3. Пул приложений использует конкретного пользователя домена, и сайт использует проверку подлинности Windows. Каждый раз, когда я пытаюсь запустить IE, IE запрашивает у меня логин.

Если я отменил достаточно сайт, он перепутался, но у меня есть имя, связанное с моим журналом Windows, отображаемым наверху. Таким образом, это говорит мне, что сайт правильно подбирает мои учетные данные для Windows.

Я добавил локального пользователя сети, чтобы иметь доступ для чтения к папке inetpub на сервере, и теперь он не запрашивает логин с IE 8. Но на chrome я получаю эту ошибку "Ошибка 338 (net:: ERR_INVALID_AUTH_CREDENTIALS): Неизвестная ошибка.".

Он находится в зоне наших интрасети. Я должен был это сказать, но я забыл. Сайт использовался для работы на нашем старом сервере разработки, но когда я обновился до Win 2008 R2 с IIS 7.5, он перестал работать. Используется для работы в 2003 году с IIS 6.0.

Мне интересно, есть ли у кого-нибудь идеи, что еще я могу попробовать. В данный момент я довольно сильно вращаю свои колеса.

Я пробовал все решения в ссылках ниже, и ни одна из них не устранила проблему

http://forums.iis.net/t/1177154.aspx

http://forums.iis.net/t/1178188.aspx

Получение приглашения для входа с помощью встроенной проверки подлинности Windows

http://warnajith.blogspot.com/2011/06/iis-75-401-unauthorized-access-error.html

http://forums.asp.net/t/1639511.aspx/1

https://superuser.com/info/128746/iis-asks-for-login-pass-when-accessed-using-hostname-but-not-when-localhost-is

http://ask.metafilter.com/183636/Prompted-for-a-username-and-password-when-browsing-to-an-IIS-virtual-directory

IIS 7 и проверка подлинности Windows

4b9b3361

Ответ 1

Я нашел ответ на этот вопрос. Это параметр конфигурации, который не отображается в графическом интерфейсе. Мне пришлось зайти в файл конфигурации хоста приложения, расположенный в <% SystemDrive% > /Windows/System32/inetsrv/config, и изменить приведенные ниже настройки.

настройки по умолчанию, где

<windowsAuthentication enabled="true"> <providers> <add value="Negotiate" /> </providers> </windowsAuthentication>

Изменено на это, и оно сработало.

<windowsAuthentication enabled="true" useKernelMode="true" useAppPoolCredentials="true"> <providers> <add value="NTLM" /> </providers> </windowsAuthentication>

Ответ 2

Связанное примечание. Если вы пытаетесь реплицировать свой сайт на localhost, а проверка подлинности Windows включена и все еще не работает, решение - это хакерство реестра, чтобы избежать проверки петли:

Используя regedit, перейдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 Добавьте новое значение Multi-String в MSV1_0 и назовите его BackConnectionHostNames Добавьте имена хостов, которые вы хотите использовать. Например, "mysite.com". Перезапустите IIS.

Ссылка источника

Значение должно быть именем веб-сайта в вашем файле хостов Windows.

Также, чтобы иметь возможность доступа к папке с неидентифицированными/данными с помощью PHP file_get_contents, мне пришлось добавить это в файл applicationHost.config, чтобы предотвратить ошибки 401.

<location path="mysite.com/data">
        <system.webServer>
            <security>
                <authentication>
                     <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>

Ответ 3

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

Ответ 4

У меня была аналогичная проблема, и она была исправлена ​​путем добавления группы пользователей (MYDOMAIN\Users) в физическую папку приложения с разрешениями на чтение.

Ответ 5

У меня есть аналогичная проблема, которая решается только путем перемещения NTLM поверх кеберосов в провайдерах, как объяснил Рори, или путем изменения DNS. Проблема возникает только в IIS7, когда заголовок узла сайта существует как CNAME (псевдоним) в DNS. в IIS6 встроенная проверка подлинности Windows использует только NTLM. в IIS7 IWS использует кеберосы до NTLM по умолчанию. Замена записи CNAME записью A решает проблему. У Kerberos нет проблем с записями A в DNS, но у него есть проблемы с псевдонимами.

Таким образом, надежные DNS-CNAME не совместимы с kerberos в Windows 2008.

Крис

Ответ 6

Если браузер запрашивает учетные данные, я думаю, что ваши учетные данные для пула приложений не имеют доступа к некоторым ресурсам на вашей странице. Вы пытались создать пустую страницу html и получить доступ к этой странице?

<html>
<body>
hello world!
</body>
</html>

Ответ 7

У меня есть аналогичная проблема.

У меня было приложение под стандартным веб-сайтом, на котором уже включена проверка подлинности Windows, но она не работала. Я решил отключить анонимную аутентификацию на веб-сайте по умолчанию, а также включить проверку подлинности Windows на веб-сайте по умолчанию.