Подтвердить что ты не робот

Проблема исключительно с использованием проверки подлинности Windows в бета-версии ASP.NET MVC 3

Я создаю сайт 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.

4b9b3361

Ответ 1

У меня была точно такая же проблема. Оказывается, произошла смена MVC 3 (довольно хорошо скрытая), которая по умолчанию автоматически включала аутентификацию форм, чтобы отключить ее, добавив следующую строку в ваш корневой файл Web.config под ключом appSettings..

<add key="autoFormsAuthentication" value="false" />

Надеюсь, что это поможет!

Ответ 2

FYI, если это поможет другим: в моем случае мне нужно было добавить <add key="enableSimpleMembership" value="false">, чтобы исправить проблему, и <add key="autoFormsAuthentication" value="false" /> не требовалось. Я также нашел этот пост в блоге очень полезным в качестве объяснения http://www.codeproject.com/Articles/292149/The-resource-cannot-be-found-Account-Login?msg=4092212#xx4092212xx

Любые мысли о потенциальных последствиях/побочных эффектах этого исправления?

Также я разочарован, что эта проблема еще не была исправлена ​​через ms через год +.

спасибо.