Аутентификация Windows IIS перед анонимным

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

Он просто использует анонимный логин. Есть ли способ в IE8 или IIS, чтобы он попробовал Windows Auth 1st и затем вернулся к Anonymous?

Спасибо за любую помощь.

1 ответ

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

Так что в целом для гибридных подходов HTTP-auth + cookie-auth вы разрешаете анонимный и аутентифицированный доступ для большей части сайта, но разрешаете только аутентифицированный доступ к одному конкретному сценарию.

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

Если пользователь перейдет по этой ссылке, ему будет 401 ответ и должен обеспечивать HTTP-аутентификацию, либо через диалог авторизации, либо, возможно, автоматически с использованием встроенной аутентификации Windows. Как только это произошло однажды, браузер начнет отправлять одинаковые учетные данные на каждую будущую страницу, поэтому IIS будет декодировать учетные данные, чтобы получить ожидаемый результат. REMOTE_USER когда запускаются сценарии вашего основного сайта.

Браузеры будут отправлять учетные данные только на страницы в том же каталоге, что и 401 скрипт или подкаталоги этого. По этой причине лучше всего помещать обязательный HTTP-скрипт в корневой каталог, например, как /login.aspx,

Однако есть несколько браузеров, которые не будут автоматически отправлять учетные данные для последующих страниц и требуют ответа на каждый HTTP-запрос. 401 Прежде чем отправить запрос еще раз с учетными данными. Это делает невозможными схемы произвольной аутентификации и гибридной аутентификации (а также значительно замедляет просмотр защищенных сайтов!). Единственный современный браузер, который делает это, это Safari. Вам может быть все равно, поскольку поддержка Safari для встроенной аутентификации Windows в любом случае традиционно была шаткой, и он все еще может использовать тип аутентификации форм + куки.

Другие вопросы по тегам