У меня есть подкаталог моего веб-сайта IIS7, который я хочу заблокировать с помощью базовой проверки подлинности. Я вошел в диспетчер IIS, выбрал аутентификацию в указанном каталоге и включил базовую аутентификацию и отключил все другие виды. Когда я перехожу к каталогу с сервера, я получаю запрос имени пользователя / пароля. Однако, когда я использую браузер на удаленном компьютере, я не получаю запрос имени пользователя / пароля.
Я использовал Fiddler для просмотра HTTP-трафика, и заголовок WWW-Authenticates не отправляется в удаленный браузер.
Я просмотрел конфигурацию и не нашел никаких настроек, которые могли бы вызвать это. Что мешает отображать подсказку?
Мы попытались отключить все другие сайты на этом сервере, чтобы убедиться, что открывается правильный сайт. После просмотра журнала HTTP я вижу, что пришел наш запрос: он приводит к ошибке 500 из нашего приложения (потому что пользователь не вошел в систему). Это наводит меня на мысль, что веб-сервер неправильно бросает вызов браузеру, потому что код нашего приложения выполняется.
Вы имеете в виду, что он работает без их запроса (то есть не запрашивает аутентификацию), или он не работает и выдает какую-то ошибку?
Одна вещь, которую стоит проверить, - это то, что я называю «неудачным тестом». Остановите сайт ненадолго и подтвердите, что он сломался (реагирует иначе). Это гарантирует, что запрос обрабатывает правильный сайт и что это не другой сайт на сервере. Вы можете сделать то же самое, добавив страницу test.aspx в папку над той, которую вы пытаетесь заблокировать. Убедитесь, что он загружает страницу, которую вы ожидаете.