Новый проект MVC5 ASP.NET производит бесконечный цикл на страницу входа

Я создаю новый проект в Visual Studio 2013, то я выбираю Asp.Net MVC и фреймворка 4.5.1 проект создан, то, мне делать больше нечего, чем F5, чтобы начать по умолчанию веб-страницы. К сожалению, она производит перенаправление на страницу входа, которая перенаправляет на страницу входа тоже. Вот короткая версия URL-адрес у меня в браузере:

http://localhost:5285/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%252525252525

Я не имею никаких ошибок в окне просмотра событий. Но на экране я вижу :

и"Ошибка http 404.15 - не найден модуль фильтрации запросов настроен отклонить запрос, где строка запроса слишком долго.и"

Сайт работает с настройками по умолчанию в IIS Экспресс. Как я могу исправить эту проблему? Я предполагаю, что что-то не так с моей визуальной студии 2013?

Правка

Это работает, если я создаю новый сайт, и я разместить его в IIS. Но если я создаю новый сайт (без всяких изменений) и нажмите игры (запуск служб IIS Экспресс по умолчанию), она не'т.

Правка 2

Я удалил все веб-сайты в документах\IISExpress\config файл\файл applicationhost.конфиг. Я пересобрал все, и он создал эту запись :

<сайты> <имя сайта="и WebApplication3 и" ИД="и 1" и> <путь к приложению=то"/" и пул applicationpool="и Clr4IntegratedAppPool" и> <виртуальный_каталог путь=то"/" и пхрасисанпхет="и c:\users\patrick\documents\visual студия 2013\проекты\WebApplication3\WebApplication3, что" /> < приложения и GT; <привязки> <обязывающий протокол="по протоколу HTTP на" bindingInformation=на"*:7444:localhost в том, что" /> </привязки> </сайта>

    <siteDefaults>
        <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
        <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
    </siteDefaults>
    <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
    <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

Я все еще получаю ошибки с IIS Express, а не с IIS.

Изюминка проекта в Visual студии

Открыть 'свойства' панели справа (или нажать клавишу F4)

Набор 'проверку подлинности Windows' до 'и#39;

Набор 'анонимная проверка подлинности' до 'включен'

Комментарии (4)

Эта проблема в том, что режим проверки подлинности выбран(по умолчанию) на шаблон MVC 5, который вызывает стиль returnurl в перенаправления, которые могли бы привести к бесконечному циклу, если не правильно настроен.

Чтобы отключить OWIN запуска Дискавери,добавить этот ключ в файл webconfig.

Комментарии (5)

Вам не хватает атрибута[атрибута allowanonymous] на действия входа.

[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
    // code....
}

2-е возможности, относящиеся к IIS Экспресс только: что, если вы создали же по умолчанию WebApplication1 проект несколько раз, играя с различными параметрами проверки подлинности в IIS Express сохраняет дополнительные параметры проверки подлинности в нем's в файл конфигурации. Что-то вроде:











Конфигурации в пользовательском'ы документы документы папку \IISExpress\конфиг\, и вы должны искать:

applicationhost.config

Тогда просто удалите XML-узла в `<путь="в WebApplication1" и> как указано выше.


Обновление для VS 2015+

Если вы'вновь с помощью Visual Studio 2015 или высшее, проверить этот путь для файла config: $(solutionDir)\.против\конфиг\файл applicationhost.конфиг

Каждое решение будет иметь свой собственный файл конфигурации.

Комментарии (9)

Мне пришлось удалить (ссылка на источник):



Комментарии (2)

Я знаю, что может быть поздно, и это не непосредственно для ОП'ы вопрос. Но если кто-то в будущем придет сюда, еще один чек о атрибута allowanonymous и разрешить атрибут, вам придется проверить все действия ребенка тоже.

Например, у меня макета (страница входа в систему использовать), что требует 2 действия ребенка на сухарях и боковой панели, и они не имеют атрибута allowanonymous атрибут (контролер авторизовать атрибут).

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

Комментарии (2)

В IIS, выберите сайт и проверить для проверки подлинности, если используется проверка подлинности с помощью форм, затем -

  1. Набор 'проверку подлинности Windows' до 'отключен' ,
  2. Набор 'анонимная проверка подлинности' до 'включен'
  3. Набор 'формы проверки подлинности' до 'включен'
Комментарии (1)

Шаблон ASP.Net в MVC 5 добавляет Майкрософт.OWIN и соответствующих библиотек к проекту. Поскольку инфраструктура долг не'т требует проверки подлинности на основе форм, шаблон также включает следующие ключа в интернете.конфиг.





Наличие этого ключа может быть причиной нежелательного перехода на страницу входа. Комментируя это может помочь решить проблему для некоторых людей.

Комментарии (0)

Я просто занимался этим вопросом в течение нескольких часов подряд.

Для меня это было в запуске.Авт.файл CS.

Этот код, когда закомментирован, остановил цикл переадресации.

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login")
        });
Комментарии (2)

в моем случае: в мой файл _Layout.cshtml по Я использовать HTML.Действия для вызова действий с авторизовать контроллер, например: HTML-код.Действий (на"Граф" В, С "Продукт", у) -> циклическая ошибка

исправление: украсить по атрибуту [атрибута allowanonymous] в этой акции (или удалить следующие HTML-Helper из файл _Layout)

Комментарии (0)

ТЛ:ДР? Не называйте защищенный веб-API (любой веб-API, который требует авторизации) на странице авторизации, такие как ~/счета/логин (который, сам по себе, не делает этого.). Если вы войдете в бесконечный цикл перенаправления на стороне сервера.

Дело

Я обнаружил, что преступник был, косвенно, AccountController::авторизовать и тот факт, чтоAccountControllerукрашен[санкционировать]`.

Первопричина была Сэмми() вызывается из свойство homeviewmodel() (строка 6 в home.viewmodel.js), где был доступ, а "веб-API и quot защищена;. Это делается для /счета/логин, который вылился в /счета/логин редирект на себя.

Подтверждение ### Вы можете подтвердить, что это является причиной вашей проблемы с помощью нескольких методов:

  1. AccountController украсить:: авторизовать с [атрибута allowanonymous]
  2. Закомментируйте Сэмми() звонки в модель представления работ.

Решение ### Решение было только излучать пакет приложений (а.к.а "~/пачки/приложение и") для представлений, которые уже требуется разрешение. По моим сведениям /организация/ вид являются классическими представлениями на основе MVC, и не являются частью приложения datamodel/с ViewModel, но я случайно переехал Скрипты пакета.Предоставляете(@" и~/пачки/приложение и") вызываем в файл _Layout.cshtml по (вызывает защищенный веб-API-вызовов должны быть сделаны для всех представлений MVC, включая /расчет/.)

Комментарии (0)

Я столкнулась с той же проблемой, потому что мой проект MVC был настроен .Объем 4.5, но я был с помощью .Net версии 4.0, как мой пул приложений в IIS. Переключил его .Чистая 4.5 пул приложений и проблема была решена. Я надеюсь, что это помогает кто-то другой!

Комментарии (0)

Убедитесь, что у вас нет никаких действий в трубопроводе, которые имеют атрибут authorize. В моем случае, моя схема была регулятор навигационное меню которых отсутствует атрибут allowanonymous.

Комментарии (0)
Решение

Пожалуйста, знайте, что это потенциально вредный совет, это'ы редко хорошая идея, чтобы изменить файл applicationhost конфигурационный файл напрямую, там, как правило, инструменты, которые сделают это для вас безопасно (например, в Visual студии.) Прежде чем продолжить, обязательно создайте резервную копию этого файла в случае вашего IIS Express становится вверх дном.

Чтобы устранить эту проблему, я взял по умолчанию конфигурационный файл, расположенный здесь в IIS :

C:\Windows\System32\inetsrv\config\applicationHost.config

На Мои документы

%userprofile%\documents\iisexpress\config\applicationhost.config

И это сработало.

Это объясняется тем, что у меня некоторые окна аутентификации и анонимные счета.

Комментарии (1)

Я решал эту задачу, благодаря этому принято отвечать: https://stackoverflow.com/questions/23107030/asp-net-login-redirect-loop-when-user-not-in-role.

Вполне возможно, что регулятор, содержащий логин действий оформлены с атрибутом authorizeattribute(даже собственной), а действия пользователя не украшаютатрибута allowanonymousатрибут. Убираем атрибутом authorizeattribute от контроллера и добавленияатрибута allowanonymous` для входа действие может быть возможным решением.

Комментарии (1)

Эти ответы более или менее одинаковых части пазла; я'постараюсь поставить все в одном месте. Проблема, что ОП описал нажмите Мои приложения данный момент я реализовал контракт OWIN трубопровода и тож Паш.

Так давайте'посмотрим, как это исправить...

  1. OWIN запуска

Я думаю, вам это нужно, потому что если вы Don'т, тогда вы не'т необходимость проверки подлинности, и я думаю, что вы знаете. Кроме этого вы're, используя некоторые старые проверки подлинности, и я думаю, вы не'т. Итак, Дон'т удалить либо OWIN в запуске атрибут...

[assembly: OwinStartupAttribute(typeof(YourApp.Probably_App_Start.SomethingLikeAuthConfig))]

...или линии конфигурации...

  1. Ограничение доступа на контроллерах

Теперь мы разобрались с этим, требуется проверка подлинности. Это означает, что либо у каждого контроллера требуется [санкционировать] атрибут, или вы можете сделать то же самое на все контроллеры в одном месте на регистрации, что на глобальном уровне (например, в RegisterGlobalFilters(), добавить фильтр.Добавить(новый атрибутом authorizeattribute())). В первом случае (при креплении каждого контроллера в отдельности) пропустить эту часть, просто перейдите к следующему. В последнем случае все контроллеры будут защищены от несанкционированного доступа, поэтому вам нужно точку входа для авторизации - незащищенных логин действие (). Просто добавить...

[AllowAnonymous]

...и вы должны быть хорошо.

  1. Конфигурации долг печенья

При входе пользователя в его магазинах браузере зашифрованы (надеюсь!) файл cookie для того, чтобы упростить систему. Итак, вам нужно куки - Дон'т удалить строку, которая говорит UseCookieAuthentication.

  1. То, что вам действительно нужно сделать, это отключить интегрированный механизм проверки подлинности IIS для веб-приложения. Это означает, что переключение с проверки подлинности Windows (отключен) и включить позволяя любому пользователю, по крайней мере, так долго, как IIS Express-это теперь обеспокоены, установив анонимный доступ (включено).

Когда вы начинаете свой веб-сайт, это в свою очередь скопировать эти настройки в конфигурации IIS Экспресс (файл applicationhost.конфиг), и там вы должны увидеть эти две строки:


  1. Вы могли бы иметь разрешение config в веб.запрещать пользователям=то&quot config, который говорит;?&и". Это означает, что подсистема авторизации поручил запретить анонимным пользователям от входа. С долг, это по-прежнему работает как задумано. Вы должны либо удалить, или создать свой анонимный пользователь в состоянии получить доступ к странице входа в систему, используя что-то вроде...

в <путь="Мои счета/логин" и> <система.веб - > <авторизации> <разрешить пользователям=на"*" и /> </разрешение> </система.веб - > </расположение>

НТН

Комментарии (0)

Для меня, это, оказалось, было вызвано моей LoginViewModel, содержащие ссылки на перевод файлов ресурсов, по-видимому, защищен проверки подлинности. Я удалил эти ссылки, и проблема была решена.

Комментарии (0)

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

Комментарии (0)

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

Комментарии (0)

У меня была такая же проблема с моим проектом ASP.NET в MVC 4. Я решил ее запуска.CS и закомментировав строку для ConfigureAuth(приложение)

    public void Configuration(IAppBuilder app)
    {
        //ConfigureAuth(app);
    }

Я также убедился в том, что я включена проверка подлинности Windows в IIS для моего проекта, и все другие варианты проверки подлинности отключена.

Комментарии (0)

Для меня, удаление следующий блок починил:




Предположим

Комментарии (0)