Я создаю новый проект в 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 Экспресс по умолчанию), она не'т.
Я удалил все веб-сайты в документах\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.
Эта проблема в том, что режим проверки подлинности выбран(по умолчанию) на шаблон MVC 5, который вызывает стиль returnurl в перенаправления, которые могли бы привести к бесконечному циклу, если не правильно настроен.
Чтобы отключить OWIN запуска Дискавери,добавить этот ключ в файл webconfig.
<add key="owin:AutomaticAppStartup" value="false"/>
Вам не хватает атрибута[атрибута allowanonymous] на действия входа.
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
// code....
}
2-е возможности, относящиеся к IIS Экспресс только: что, если вы создали же по умолчанию WebApplication1
проект несколько раз, играя с различными параметрами проверки подлинности в IIS Express сохраняет дополнительные параметры проверки подлинности в нем's в файл конфигурации. Что-то вроде:
<location path="WebApplication1">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
</configuration>
Конфигурации в пользовательском'ы документы документы папку \IISExpress\конфиг\
, и вы должны искать:
applicationhost.config
Тогда просто удалите XML-узла в `<путь="в WebApplication1" и> как указано выше.
Если вы'вновь с помощью Visual Studio 2015 или высшее, проверить этот путь для файла config:
$(solutionDir)\.против\конфиг\файл applicationhost.конфиг
Каждое решение будет иметь свой собственный файл конфигурации.
Я знаю, что может быть поздно, и это не непосредственно для ОП'ы вопрос. Но если кто-то в будущем придет сюда, еще один чек о атрибута allowanonymous
и разрешить
атрибут, вам придется проверить все действия ребенка тоже.
Например, у меня макета (страница входа в систему использовать), что требует 2 действия ребенка на сухарях и боковой панели, и они не имеют атрибута allowanonymous атрибут (контролер авторизовать
атрибут).
Надеюсь, что это поможет.
В IIS, выберите сайт и проверить для проверки подлинности, если используется проверка подлинности с помощью форм, затем -
Шаблон ASP.Net в MVC 5 добавляет Майкрософт.OWIN и соответствующих библиотек к проекту. Поскольку инфраструктура долг не'т требует проверки подлинности на основе форм, шаблон также включает следующие ключа в интернете.конфиг.
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
Наличие этого ключа может быть причиной нежелательного перехода на страницу входа. Комментируя это может помочь решить проблему для некоторых людей.
Я просто занимался этим вопросом в течение нескольких часов подряд.
Для меня это было в запуске.Авт.файл CS.
Этот код, когда закомментирован, остановил цикл переадресации.
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login")
});
в моем случае: в мой файл _Layout.cshtml по Я использовать HTML.Действия для вызова действий с авторизовать контроллер, например: HTML-код.Действий (на"Граф" В, С "Продукт", у) -> циклическая ошибка
исправление: украсить по атрибуту [атрибута allowanonymous] в этой акции (или удалить следующие HTML-Helper из файл _Layout)
ТЛ:ДР? Не называйте защищенный веб-API (любой веб-API, который требует авторизации) на странице авторизации, такие как ~/счета/логин (который, сам по себе, не делает этого.). Если вы войдете в бесконечный цикл перенаправления на стороне сервера.
Я обнаружил, что преступник был, косвенно, AccountController::авторизовать и тот факт, что
AccountControllerукрашен
[санкционировать]`.
Первопричина была Сэмми() вызывается из свойство homeviewmodel() (строка 6 в home.viewmodel.js), где был доступ, а "веб-API и quot защищена;. Это делается для /счета/логин, который вылился в /счета/логин редирект на себя.
Подтверждение ### Вы можете подтвердить, что это является причиной вашей проблемы с помощью нескольких методов:
:: авторизовать
с [атрибута allowanonymous]
Решение ###
Решение было только излучать пакет приложений (а.к.а "~/пачки/приложение и") для представлений, которые уже требуется разрешение. По моим сведениям /организация/ вид являются классическими представлениями на основе MVC, и не являются частью приложения datamodel/с ViewModel, но я случайно переехал Скрипты пакета.Предоставляете(@" и~/пачки/приложение и")
вызываем в файл _Layout.cshtml по (вызывает защищенный веб-API-вызовов должны быть сделаны для всех представлений MVC, включая /расчет/.)
Я столкнулась с той же проблемой, потому что мой проект MVC был настроен .Объем 4.5, но я был с помощью .Net версии 4.0, как мой пул приложений в IIS. Переключил его .Чистая 4.5 пул приложений и проблема была решена. Я надеюсь, что это помогает кто-то другой!
Пожалуйста, знайте, что это потенциально вредный совет, это'ы редко хорошая идея, чтобы изменить файл applicationhost конфигурационный файл напрямую, там, как правило, инструменты, которые сделают это для вас безопасно (например, в Visual студии.) Прежде чем продолжить, обязательно создайте резервную копию этого файла в случае вашего IIS Express становится вверх дном.
Чтобы устранить эту проблему, я взял по умолчанию конфигурационный файл, расположенный здесь в IIS :
C:\Windows\System32\inetsrv\config\applicationHost.config
На Мои документы
%userprofile%\documents\iisexpress\config\applicationhost.config
И это сработало.
Это объясняется тем, что у меня некоторые окна аутентификации и анонимные счета.
Я решал эту задачу, благодаря этому принято отвечать: https://stackoverflow.com/questions/23107030/asp-net-login-redirect-loop-when-user-not-in-role.
Вполне возможно, что регулятор, содержащий логин действий оформлены с атрибутом authorizeattribute(даже собственной), а действия пользователя не украшают
атрибута allowanonymousатрибут. Убираем атрибутом authorizeattribute от контроллера и добавления
атрибута allowanonymous` для входа действие может быть возможным решением.
Эти ответы более или менее одинаковых части пазла; я'постараюсь поставить все в одном месте. Проблема, что ОП описал нажмите Мои приложения данный момент я реализовал контракт OWIN трубопровода и тож Паш.
Так давайте'посмотрим, как это исправить...
Я думаю, вам это нужно, потому что если вы Don'т, тогда вы не'т необходимость проверки подлинности, и я думаю, что вы знаете. Кроме этого вы're, используя некоторые старые проверки подлинности, и я думаю, вы не'т. Итак, Дон'т удалить либо OWIN в запуске атрибут...
[assembly: OwinStartupAttribute(typeof(YourApp.Probably_App_Start.SomethingLikeAuthConfig))]
...или линии конфигурации...
<add key="owin:AppStartup" value="YourApp.Probably_App_Start.SomethingLikeAuthConfig" />
Теперь мы разобрались с этим, требуется проверка подлинности. Это означает, что либо у каждого контроллера требуется [санкционировать] атрибут, или вы можете сделать то же самое на все контроллеры в одном месте на регистрации, что на глобальном уровне (например, в RegisterGlobalFilters()
, добавить фильтр.Добавить(новый атрибутом authorizeattribute())
).
В первом случае (при креплении каждого контроллера в отдельности) пропустить эту часть, просто перейдите к следующему.
В последнем случае все контроллеры будут защищены от несанкционированного доступа, поэтому вам нужно точку входа для авторизации - незащищенных логин действие ()
.
Просто добавить...
[AllowAnonymous]
...и вы должны быть хорошо.
При входе пользователя в его магазинах браузере зашифрованы (надеюсь!) файл cookie для того, чтобы упростить систему. Итак, вам нужно куки - Дон'т удалить строку, которая говорит UseCookieAuthentication
.
анонимный доступ
(включено).Когда вы начинаете свой веб-сайт, это в свою очередь скопировать эти настройки в конфигурации IIS Экспресс (файл applicationhost.конфиг
), и там вы должны увидеть эти две строки:
<windowsAuthentication enabled="false" />
<anonymousAuthentication enabled="true" />
;?&и"
. Это означает, что подсистема авторизации поручил запретить анонимным пользователям от входа.
С долг, это по-прежнему работает как задумано. Вы должны либо удалить, или создать свой анонимный пользователь в состоянии получить доступ к странице входа в систему, используя что-то вроде...в <путь="Мои счета/логин" и> <система.веб - > <авторизации> <разрешить пользователям=на"*" и /> </разрешение> </система.веб - > </расположение>
НТН
Для меня, это, оказалось, было вызвано моей LoginViewModel, содержащие ссылки на перевод файлов ресурсов, по-видимому, защищен проверки подлинности. Я удалил эти ссылки, и проблема была решена.
Я имел похожие проблемы, где он был в бесконечный цикл при вызове обратно на сайт локально. Получается, что при отладке локально было перенаправление портов. Я обновил порты в окне свойств проекта, но оставил определение Azure в том же в проекте облачной и все стало работать, как ожидалось.
в моем случае это был очень проводной проблема , я украсил домашний регулятор на несуществующие роли. так это вызывает цикл переадресации.
У меня была такая же проблема с моим проектом ASP.NET в MVC 4. Я решил ее запуска.CS и закомментировав строку для ConfigureAuth(приложение)
public void Configuration(IAppBuilder app)
{
//ConfigureAuth(app);
}
Я также убедился в том, что я включена проверка подлинности Windows в IIS для моего проекта, и все другие варианты проверки подлинности отключена.