Что не так с моей базовой аутентификацией в моем браузере?

я пытаюсь перейти по следующему URL-адресу: -

http://user1:pass1@localhost:1234/api/users?format=xml

ничего сложного. Обратите внимание, как я получил имя пользователя/пароль в URL-адресе? это, я считаю, для базовой аутентификации.

Когда я это делаю, в заголовках запросов отсутствует заголовок «Авторизовать». Э... не так :(

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

Итак.. почему это не работает? Это как-то связано с тем, что мой код не отправляет вызов 401 или какую-то хрень?

Для чего это стоит, мой сайт - это ASP.NET MVC1, работающий на IIS7 (и то же самое происходит, когда я запускаю его на cassini).

Обновлять:

Если это незаконный способ вызова ресурса с использованием базовой аутентификации (например, недостаток безопасности) ... то возможно ли это сделать для веб-сайта ASP.NET MVC ... для каждого метода действия (а не всего сайта, скажем)?


person Pure.Krome    schedule 26.03.2010    source источник
comment
Технически эта схема URI незаконна. Этого никогда не было, и теперь, когда это проблема безопасности, веб-браузеры игнорируют ее. Кроме того, если вы не отправите 401, да, браузер не выдаст пароль. Почему?   -  person jrockway    schedule 27.03.2010
comment
тогда невозможно иметь базовую аутентификацию для каждого метода действия? это весь сайт или ничего? и как мы можем протестировать базовую аутентификацию (например, модульные тесты и т. д.)?   -  person Pure.Krome    schedule 27.03.2010


Ответы (2)


Если вы хотите использовать обычную аутентификацию, первый запрос к ресурсу должен возвращать код ошибки HTTP 401 и устанавливать заголовок WWW-Authenticate. Это укажет браузеру на самом деле отправить эти учетные данные.

Вы упомянули, что используете ASP.NET MVC. Возможно, вы сможете сделать это через web.config, но я не уверен в точной механике.

person Yuliy    schedule 29.03.2010

Моя компания производит продукт под названием веб-сервер Neokernel (http://www.neokernel.com). веб-сервер ASP.NET с поддержкой базовой проверки подлинности среди других функций.

Вы указываете защищенные ресурсы в конфигурационном файле в стиле apache, чтобы вы могли поместить свои «защищенные» действия в папку, требующую аутентификации, а все остальное поместить в корень / незащищенные. Взгляните на файл http.authentication, установленный в корневом каталоге Neokernel, в качестве примера или на образцы аутентификации в файле demos.zip.

person Damien    schedule 16.04.2010