2015-05-21 2 views
3

У меня есть приложение ASP.Net MVC5 с использованием шаблона Identity «из коробки» в соответствии с ASP.Net Identity 2.0.0. Мне нужно обновить его, чтобы использовать новый код, который находится в последнем шаблоне ASP.Net MVC, а именно использование класса SignInManager.ASP.Net MVC идентификация бесконечного цикла переадресации

Я сделал некоторые сравнения A/B между кодом в моем оригинальном приложении и шаблоном, сгенерированным последним, и портировал все, что я мог видеть, что разные.

Тем не менее, я получаю странную ошибку, я подозреваю, что связан с OWIN. Когда я пытаюсь войти или зарегистрироваться, он запускает цикл Redirect, который в конечном итоге приводит к сбою приложения с предупреждением о безопасности, поскольку строка запроса URL конкатенируется до смерти.


URL-адрес является: https://localhost:44302/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%2525252FLogin%2525253FReturnUrl%2525253D%252525252FAccount%252525252FLogin%252525253FReturnUrl%252525253D%25252525252FAccount%25252525252FLogin%25252525253FReturnUrl%25252525253D%2525252525252FAccount%2525252525252FLogin%2525252525253FReturnUrl%2525252525253D%252525252525252FAccount%252525252525252FLogin%252525252525253FReturnUrl%252525252525253D%25252525252525252FAccount%25252525252525252FLogin%25252525252525253FReturnUrl%25252525252525253D%2525252525252525252FAccount%2525252525252525252FLogin%2525252525252525253FReturnUrl%2525252525252525253D%252525252525252525252FAccount%252525252525252525252FLogin%252525252525252525253FReturnUrl%252525252525252525253D%25252525252525252525252FAccount%25252525252525252525252FLogin%25252525252525252525253FReturnUrl%25252525252525252525253D%2525252525252525252525252FAccount%2525252525252525252525252FLogin%2525252525252525252525253FReturnUrl%2525252525252525252525253D%252525252525252525252525252FAccount%252525252525252525252525252FLogin%252525252525252525252525253FReturnUrl%252525252525252525252525253D%25252525252525252525252525252FAccount%25252525252525252525252525252FLogin%25252525252525252525252525253FReturnUrl%25252525252525252525252525253D%2525252525252525252525252525252FAccount%2525252525252525252525252525252FLogin%2525252525252525252525252525253FReturnUrl%2525252525252525252525252525253D%252525252525252525252525252525252FAccount%252525252525252525252525252525252FLogin%252525252525252525252525252525253FReturnUrl%252525252525252525252525252525253D%25252525252525252525252525252525252FAccount%25252525252525252525252525252525252FLogin%25252525252525252525252525252525253FReturnUrl%25252525252525252525252525252525253D%2525252525252525252525252525252525252FAccount%2525252525252525252525252525252525252FLogin%2525252525252525252525252525252525253FReturnUrl%2525252525252525252525252525252525253D%252525252525252525252525252525252525252FAccount%252525252525252525252525252525252525252FLogin

Подробная информация об ошибке:

Модуль RequestFilteringModule

Уведомление BeginRequest

44445164 +10617451515053691368888

Handler ExtensionlessUrlHandler-Интегрированное-4,0

Код ошибки 0x00000000


Я использовал те же настройки, когда речь идет о ReturnUrl во всех методах.

В основном исходный элемент AccountController моих приложений и связанный с ним защитный код были не затронуты исходным шаблоном. Мое новое приложение-образец отлично работает на моей локальной машине, поэтому я не уверен, где различия.

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

Я проводил много времени, пытаясь разрешить это и не имел никакого успеха, поэтому я подумал, что я поместил его там для некоторых советов ... заблаговременно за любую помощь &. Пожалуйста, дайте мне знать, если вам нужно увидеть больше кода.

+0

убедитесь, что вы не включили аутентификацию на окнах в iis для этого сайта. –

+0

Аутентификация Windows отключена, в том числе в настройках конфигурации IISExpress –

+0

вы исправили эту проблему? Недавно я встретил то же самое. Если вам удастся это исправить, можете ли вы поделиться решением? спасибо – Vincent

ответ

2

Решено ... выясняется, что виновником была моя конфигурация Unity DI.

Я просверлился глубоко, чтобы найти ошибки, рекурсивно возникающие при каждом перенаправлении, и он предположил, что зависимости AccountController не были созданы. У меня была аналогичная проблема в прошлом году Unity Container trying to resolve non registered type, throwing error, и поэтому я посмотрел дальше на измененные зависимости.

В соответствии с предлагаемым ответом на Register IAuthenticationManager with Unity проблема решена.

Благодарим за предложения re: SSL/HTTPS/Filters, расследование которых привело меня к исключениям.

5

Я думаю, что ваше действие для входа отсутствует [AllowAnonymous].

+0

Привет Барт, атрибут [AllowAnonymous] находится в действии входа (и зарегистрируйтесь тоже) –

+0

также попробуйте контроллер? –

+0

можете ли вы разместить свои фильтры? довольно уверен, что у вас есть авторизация или ssl. –

2

У вас есть настройка SSL локально? аутентифицируетесь на HTTPS затем перенаправлены на HTTP, который убивает куки & перенаправление обратно на страницу входа в систему HTTPS

У вас есть что-то в web.config для проверки подлинности форм перенаправлять как

protection="All" requireSSL="true" loginUrl="~/Account/Login.aspx" 

ли у ваших Печеньки выглядят нормально?

+0

HTTPS был установлен в конфигурацию фильтров: filters.Add (новый RequireHttpsAttribute()); однако проблема оказалась проблемой DI, см. Мой ответ ниже. –

0

Я также сталкиваюсь с этим же вопросом, прежде чем и решить, добавив следующую строку в вебе-конфигурации

<add key="owin:AutomaticAppStartup" value="false"/> 

Это будет отключить обнаружение запуска Owin.

Надеюсь, он сработает.

Также проверьте в виртуальном каталоге IIS. Убедитесь, что анонимный пользователь включен или нет, если он отключен, включите его, и проблема будет решена.

Смежные вопросы