Проблема исключительно с использованием проверки подлинности Windows в ASP.NET MVC 3 Beta - PullRequest
27 голосов
/ 02 ноября 2010

Я создаю интранет-сайт в ASP.NET MVC 3 Beta и хотел бы использовать только аутентификацию Windows.Кроме того, я хотел бы использовать сервер разработки Visual Studio в 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» в свойствах проекта в разделе «Использование сервера разработки Visual Studio», то я правильно получу этот ответ при подключении:

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).Если я удаляю «отрицать» часть, то все работает нормально, за исключением того, что я не получаю аутентифицированного принципала и фактически остаюсь анонимным.

Я считаю, что это работало в ASP.NET MVC 2 и VS2008, просто меняярежим аутентификации для Windows, однако, похоже, он больше не работает таким образом.

Я знаю, что, возможно, мне не хватает чего-то базового.Спасибо!

Примечание : Этот вопрос похож на вопрос ", ограничивающий анонимный доступ к ASP.Net MVC Site ", но отличается тем, что я хочуиспользовать только аутентификацию Windows.

Ответы [ 3 ]

38 голосов
/ 02 ноября 2010

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

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

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

15 голосов
/ 01 декабря 2011

К вашему сведению, в случае, если это поможет другим: в моем случае мне нужно было только добавить <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

Есть ли какие-либо мысли о возможных последствиях / побочных эффектах этого исправления?

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

спасибо.

1 голос
/ 26 сентября 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...