Бесконечный цикл перенаправления для проверки подлинности Basic или Windows?

Я работаю над новым приложением ASP.NET. В IIS8, если отключить анонимный доступ и включить проверку подлинности Basic или Windows, он переходит в бесконечный цикл переадресации и попадает в следующий URL после того, как браузер разрывает цикл:

https://XXXXXX.com/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%252525252525252525252525252525252525252F

Поле учетных данных никогда не появляется. Что может быть неправильным?

Ответ 1

Я исправил его. Первое, что вам нужно сделать, это включить аут аут и отключить анонимность как в IIS, так и в проекте Visual Studio (выберите корневой проект node в обозревателе решений и в окне свойств, чтобы отключить анонимный доступ и включить Windows auth). Затем добавьте следующую строку в свой web.config:

<system.webServer>
  <modules>
    <remove name="FormsAuthenticationModule" />
    <remove name="FormsAuthentication" />
  </modules>
</system.webServer>

Затем откройте App_Start/Startup.Auth.cs и закомментируйте (или удалите) следующее:

        // Enable the application to use a cookie to store information for the signed in user
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login")
        });
        // Use a cookie to temporarily store information about a user logging in with a third party login provider
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

Затем опубликуйте на свой веб-сервер, и вы сможете войти в систему без этой ошибки перенаправления!

Ответ 2

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

Таким образом, система пытается аутентифицировать пользователя, перенаправляя его на страницу входа, но потому, что не может допускать либо страницу входа в систему, чувствуется в этом цикле навсегда.

Ответ 3

Может быть в файле machine.config или в вашем глобальном web.config, аутентификация форм включена с этим URL-адресом в качестве страницы проверки подлинности.

Ответ 4

Отметьте "минимальные тайм-ауты" в вашем пуле приложений IIS, расширенные настройки. если он не превышает ваш системный сеанс, установите его на число, которое больше.

Например, если вы установили значение тайм-аута сеанса до 30, сделайте "тайм-аут" в вашем пуле приложений IIS более чем на 30+.  по умолчанию "минимальный тайм-аут" minuets в вашем пуле приложений IIS обычно равен 20.

Ответ 5

У меня была такая же проблема, но я исправил ее просто добавив [AllowAnonymous] перед моим контроллером входа. Возможно, это не сработает для всех, но, возможно, это было именно так.