У меня есть веб-сайт .NET (MVC2), который находится в разработке. Я развернул его в некоторой производственной инфраструктуре и протестировал через Интернет с анонимным доступом (как будет, когда он будет запущен), и он отлично работает. В период с настоящего момента и до даты запуска я хотел бы ограничить доступ небольшой тестовой группой.
Однако, когда я отключаю анонимный доступ (я использую IIS 7 в 64-разрядной версии Windows 2008 R2) и включаю базовую аутентификацию, две вещи идут не так: во-первых, это мешает аутентификации сайта и перенаправляет на настроенную страницу входа на сайт. , а во-вторых, по какой-то причине таблицы стилей перестают «работать». т.е. сайт выглядит так, как будто на нем нет таблиц стилей, даже если они загружаются правильно (как показано в Fiddler / Firebug.)
Я хочу защитить доступ к серверу - я не хочу использовать обычную проверку подлинности в качестве механизма проверки подлинности для веб-сайта MVC - который обрабатывается стандартной проверкой подлинности форм. Я просто хочу, чтобы люди не следили за сайтом до того, как он заработает.
У меня было это раньше, и я всегда боролся с отсутствием простой / очевидной функции «защитить этот сервер паролем».
Должен быть простой ответ. (Я думаю о функциональном эквиваленте файла .htaccess, но для IIS)?
[ОБНОВЛЕНИЕ] В соответствии с моим промахом (см. Ответ ниже), мне нужна проверка подлинности Windows для управления доступом к сайту и проверка подлинности ASP.NET для управления взаимодействием пользователя с веб-сайтом (их идентичность, независимо от того, регистрируются ли они вход / выход и т. д.)
Вы можете делать то, что хотите, установив ограничения IP-адреса и домена для сайта. Это опция в диспетчере IIS.
Ладно, возможно, это была моя ошибка. Чтобы обеспечить хорошую работу IIS / ASP.NET, нельзя просто полагаться на модуль проверки подлинности IIS. Пока я был занят включением / отключением опций в оснастке диспетчера IIS, проблема, с которой я столкнулся (перенаправление), была вызвана настройкой web.config:
<authentication mode="Forms">
<forms loginUrl="~/logon" protection="All" path="/" />
</authentication>
Независимо от того, какой вариант вы выбираете в IIS (анонимный, базовый, Windows, Forms и т. Д.), Кажется, что web.config отменяет / мешает выбору.
Поэтому ответ заключается в замене элемента аутентификации в web.config на тот, который устанавливает аутентификацию Windows:
<authentication mode="Windows"></authentication>
А затем удалить анонимный доступ через модуль IIS и выбрать вместо него «Базовый».