Подтвердить что ты не робот

Ошибка HTTP 404.15 - не найден... потому что строка запроса слишком длинная

Я проверил много сообщений об этой ошибке, но пока не смог исправить эту проблему.

У меня есть простой веб-сайт MVC5, встроенный в VS2013, работающий под управлением Windows 8 pro. Когда сайт был создан, был выбран вариант для отдельных учетных записей. Теперь мне нужно включить проверку подлинности Windows, чтобы только пользователи учетной записи AD могли использовать веб-сайт, а также авторизацию, чтобы я мог ограничить доступ к определенным представлениям/контроллерам определенным группам AD.

Выбрав веб-проект в VS, я обновил окно свойств (F4), чтобы анонимная аутентификация была отключена, а для проверки подлинности Windows установлено значение "Включено".

Теперь web.config для проекта содержит следующие разделы:

<system.web>
    <authentication mode="Windows" />
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
  <system.webServer>
    <modules>
      <remove name="FormsAuthenticationModule" />
    </modules>
  </system.webServer>

Я получаю доступ к сайту из IIS или F5. Я получаю сообщение об ошибке: Ошибка HTTP 404.15 - Не найдено Модуль фильтрации запросов настроен на отказ от запроса, когда строка запроса слишком длинная. Я заметил, что что-то зациклилось, чтобы дать ReturnUrl, который является повторяющейся длинной конкатенацией внутри строки запроса.

В разделе IIS\Authentication я отключил функцию "Анонимная аутентификация", "Импровизация ASP.Net" и "Аутентификация форм". В разделе "Правила авторизации IIS.Net" я запретил "Анонимные пользователи" и "Разрешить всем пользователям"

Где я иду не так?

4b9b3361

Ответ 1

Единственный раз, когда я лично сталкивался с этой проблемой, я случайно добавил [Authorize] к дочернему действию, которое использовалось в макете. Добавление [Authorize] в действие вашего знака будет иметь такой же эффект или просто пренебречь добавлением [AllowAnonymous] в действие вашего знака, когда на контроллере он находится [Authorize]. Длинные и короткие, это вызвано чем-то, требующим авторизации на странице фактического знака, что затем заставляет вас перенаправляться на страницу входа в систему, для которой требуется авторизация, что приведет к перенаправлению на страницу входа и т.д.

ТЛ; дг

  • Убедитесь, что ваш вход/действие входа не имеет [Authorize].
  • Убедитесь, что ваше действие входа/входа имеет [AllowAnonymous].
  • Убедитесь, что никакие дочерние действия, используемые на вашем макете или странице входа, не имеют [Authorize] или имеют [AllowAnonymous], если они находятся в контроллере, украшенном [Authorize].

Ответ 2

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

Я исправил ошибку, добавив ниже в свой файл веб-конфигурации.

  • В теге system.web изменилась аутентификация mode="None" на аутентификацию mode="Windows"

  • В теге appSettings добавлено добавление key="owin:AutomaticAppStartup" value="false"

Ответ 3

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

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

Для решения этой проблемы я закомментировал функцию ConfigureAuth(app) в моем файле Startup.cs.

Ответ 4

У меня была та же проблема.

Проверьте свойства проекта..

Anonymous Authentication=False
Windwos Authentication=True