Я создаю сайт Intranet в бета-версии ASP.NET MVC 3 и хотел бы использовать исключительно проверку подлинности Windows. Кроме того, я хотел бы использовать Visual Studio Development Server в VS2010.
Я изменил файл web.config по умолчанию, чтобы удалить все ссылки на проверку подлинности форм и переключился на это:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
Однако, когда я запускаю свой сайт и получаю страницу по умолчанию, я получаю этот ответ:
HTTP/1.1 302 Found
Server: ASP.NET Development Server/10.0.0.0
Date: Tue, 02 Nov 2010 14:05:19 GMT
X-AspNet-Version: 4.0.30319
Location: /Account/Login?ReturnUrl=%2f
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 145
Connection: Close
Что приводит к этому сообщению в моем браузере:
Ошибка сервера в приложении "/".
Ресурс не найден.
Описание: HTTP 404. Ресурс вы ищете (или зависимостей) могли быть удалены, изменило свое название или Временно недоступен. пожалуйста просмотрите следующий URL-адрес и убедитесь, что что оно написано правильно.
Запрошенный URL:/Account/Login
Информация о версии: Microsoft.NET Версия Framework: 4.0.30319; ASP.NET Версия: 4.0.30319.1 Версия: 4.0.30319.1
Если я выбираю "NTLM Authentication" в свойствах проекта в разделе "Использовать Visual Studio Development Server", то я правильно получаю этот ответ на connect:
HTTP/1.1 401 Unauthorized Server
ASP.NET Development Server/10.0.0.0
Date: Tue, 02 Nov 2010 14:07:37 GMT
Content-Length: 1211
WWW-Authenticate: NTLM
Но тогда, когда я аутентифицируюсь, я получаю 302
Я думаю, что это просто вопрос очистки значения по умолчанию, но я не уверен ( "/Account/Login" не появляется нигде в моих файлах web.config). Если я удалю часть "deny", тогда все будет работать отлично, за исключением того, что я не получу аутентифицированного Принципала и фактически остаюсь анонимным.
Я полагаю, что это использовалось для работы в ASP.NET MVC 2 и VS2008, просто изменив режим аутентификации на Windows, однако, похоже, это не работает так.
Я знаю, что, вероятно, я пропустил что-то основное. Спасибо!
Примечание. Этот вопрос аналогичен вопросу "Проблема ограничения анонимного доступа к сайту ASP.Net MVC", но отличается в что я хочу исключительно использовать проверку подлинности Windows.