www update tools packs net mvc4 mvc language instalar asp asp.net-mvc-3

asp.net mvc 3 - update - ser redirigido a loginUrl incorrecto-> cuenta/login en lugar de cuenta/LOGON



mvc 4+ (4)

Tengo un error extraño que nunca he encontrado antes.

Aseguré un controlador con:

[Authorize(Roles = "admin")] public class LoggingController : Controller

Cuando un usuario que no es administrador intenta acceder a contenido protegido, se le redirige a:

http: // localhost: 50501 / Account / Login? ReturnUrl =% 2flogging

nota: cuenta / inicio de sesión y NO cuenta / inicio de sesión

La acción AccountController.Login no existe.

web.config tiene:

<authentication mode="Forms"> <forms loginUrl="~/Account/LogOn" timeout="2880" /> </authentication>

Por supuesto, puedo implementar la acción de inicio de sesión y redirigir al inicio de sesión. Estoy desconcertado y me gustaría saber por qué sucede esto.


Busque su proyecto para iniciar sesión, debe especificarse en algún lugar. ¿Hay algún otro valor web.config que invalide esto (tal vez mirando una raíz secundaria y se esté utilizando el valor principal) También hay algún redireccionamiento que esté sucediendo? ¿Hay algún valor predeterminado establecido en web.config de su máquina? ¿Su URL predeterminada en el proyecto está configurada para ser / login?

Instale el depurador de rutas de Glimpse para ver qué ruta se está utilizando también en esta página.

EDITAR : Un poco más de investigación produce un problema conocido. Consulte este enlace: ASP.NET MVC problema con la configuración de la sección de autenticación de formularios

Hay un error en mvc 3 beta. ¿Estás ejecutando los bits beta? Observe también el elemento mencionado en la url anterior para los bits RTM:

<add key="loginUrl" value="~/LogOn" />

También puedes ver http://forums.asp.net/p/1616153/4138366.aspx

Editar 2

A continuación se incluye un comentario sólido sobre una posible fuente de esto de @santiagoIT (aumente su comentario, por favor, si los detalles lo ayudan)

Hoy descubrí la raíz de este problema: había agregado ''dependencia desplegable'' en ''Páginas web ASP.NET con sintaxis de afeitar''. Esto agrega una referencia a: WebMatrix.Data.dll Este ensamblaje tiene una clase con un constructor estático que hace lo siguiente: FormsAuthenticationSettings estático () {FormsAuthenticationSettings.LoginUrlKey = "loginUrl"; FormsAuthenticationSettings.DefaultLoginUrl = "~ / Account / Login";} ¡Eso explica!


Esto funcionó para mí y estoy usando MVC 3

<appSettings> <add key="loginUrl" value="~/Account/LogOn" /> </appSettings> <system.web> <authentication mode="Forms"> <forms loginUrl="~/Account/LogOn" name=".ASPXFORMSAUTH" /> </authentication> </system.web>

También encontré que agregar la parte followinf a la configuración web (solo durante la depuración de la configuración) ayudó a acelerar mi depuración como lo había hecho para autenticar CUALQUIER página.

<authorization> <deny users="?" /> <!-- remove after debugging --> </authorization>


Lo arreglé de esta manera

1) Ir a IIS

2) Seleccione su proyecto

3) Haga clic en "Autenticación"

4) Haga clic en "Autenticación anónima"> Editar> seleccione "Identidad del grupo de aplicaciones" en lugar de "Usuario específico".

5) Hecho.


Simplemente elimine la dll de WebMatrix si están presentes en su carpeta bin desplegada.