asp.net mvc - requestlimits - Error HTTP 404.15-No encontrado... porque la cadena de consulta es demasiado larga
requestfiltering (4)
La única vez que me he encontrado personalmente con este problema es cuando accidentalmente agregué [Authorize]
a una acción secundaria que se usó en el diseño. Agregar [Authorize]
a su acción de inicio de sesión tendría el mismo efecto o simplemente [AllowAnonymous]
agregar [AllowAnonymous]
a su acción de inicio de sesión, cuando el controlador en el que se encuentra tiene [Authorize]
. Largo y corto, esto se debe a algo que requiere autorización en la página de inicio de sesión real, que a su vez hace que sea redirigido a la página de inicio de sesión, que necesita autorización, lo que hace que se le redirija a la página de inicio de sesión, etc.
tl; dr
- Asegúrese de que su acción de inicio de sesión / inicio de sesión no tenga
[Authorize]
. - Asegúrese de que su acción de inicio de sesión / inicio de sesión tenga
[AllowAnonymous]
. - Asegúrese de que las acciones secundarias utilizadas en su diseño o página de inicio de sesión tengan
[Authorize]
o tengan[AllowAnonymous]
si están en un controlador decorado con[Authorize]
.
He comprobado muchas publicaciones sobre este error, pero aún no he podido solucionar el problema.
Tengo un sitio web MVC5 simple integrado en VS2013 que se ejecuta en Windows 8 pro. Cuando se creó el sitio, se seleccionó la opción para cuentas individuales. Ahora necesito habilitar la autenticación de Windows para que solo los usuarios de cuentas de AD puedan usar el sitio web y también la autorización para poder limitar el acceso a determinadas vistas / controladores a grupos de AD particulares.
Habiendo seleccionado el proyecto web dentro de VS, he actualizado la ventana de propiedades (F4) para que la Autenticación anónima esté configurada en deshabilitada y la Autenticación de Windows esté habilitada.
El web.config para el proyecto ahora contiene las siguientes secciones:
<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>
Accedo al sitio desde IIS o F5. Aparece el error: Error HTTP 404.15 - No encontrado El módulo de filtrado de solicitudes está configurado para denegar una solicitud cuando la cadena de consulta es demasiado larga. Me doy cuenta de que algo se ha enlazado para dar una ReturnUrl que es una concatenación larga y repetitiva dentro de la cadena de consulta.
Dentro de la sección IIS / Autenticación, he configurado la opción Deshabilitada "Autenticación anónima, Suplantación de ASP.Net y Autenticación de formularios". Dentro de la sección Reglas de autorización de IIS.Net, he establecido denegar "Usuarios anónimos" y Permitir "Todos los usuarios"
¿A dónde me voy mal?
Puede tener una función en el inicio que lo redirige a la página de inicio de sesión. Debes desactivarlo. Me crearon el proyecto por el método de autenticación predeterminado que crea un controlador de cuenta y sus dependientes. Ahora, cuando cambié el método de autenticación al modo Windows, surgió el error mencionado. Ahora, lo único que hice fue comentar la función ConfigureAuth (aplicación) en el archivo startup.cs
Recibí este error cuando habilité la autenticación de Windows. Quería autorizar al usuario basado en el inicio de sesión de Windows y no quiero la página de inicio de sesión en mi aplicación.
Conseguí corregir el error agregando lo siguiente en mi archivo de configuración web.
Bajo la etiqueta
system.web
, se cambió elmode="None"
autenticaciónmode="None"
almode="Windows"
autenticaciónmode="Windows"
En la etiqueta
appSettings
, se agregó addkey="owin:AutomaticAppStartup" value="false"
Yo tuve el mismo problema..
Compruebe bajo Propiedades del proyecto ..
Anonymous Authentication=False
Windwos Authentication=True