MVC Forms LoginUrl es incorrecto

Tengo una aplicación ASP.NET MVC 3 con autenticación de formularios. Por alguna razón que no puedo ver, la URL de redireccionamiento de inicio de sesión es /Account/Login?ReturnUrl=%2fSecure%2fAction lugar de /Account/LogOn?ReturnUrl=%2fSecure%2fAction . La diferencia es sutil, es usar / Account / Login en lugar de / Account / LogOn .

Mi sección de formularios web.config es correcta. ¿Otra cosa podría afectar la URL de inicio de sesión?

    

Este es un problema conocido. Tuve el mismo problema con mi atributo de autorizar personalizado. Encontré la solución en algún lugar de la red, no recuerdo dónde. Solo agregue esto a appSettings en su web.config

  

Nota: Esto funciona con MVC 3, no lo intenté con versiones anteriores.

EDITAR: Lo encontré mencionado en las notas de la versión , pero parece que han cambiado el nombre de la configuración y se olvidó de actualizar las notas de la versión de RTM.

Me encontré con un problema similar hace algún tiempo. Después de unos meses descubrí la raíz del problema: había agregado una ‘dependencia desplegable’ en ‘Páginas web ASP.NET con syntax Razor’. Esto agrega una referencia a: WebMatrix.Data.dll Este ensamblado tiene una clase con un constructor estático que hace lo siguiente:

 static FormsAuthenticationSettings() { FormsAuthenticationSettings.LoginUrlKey = "loginUrl"; FormsAuthenticationSettings.DefaultLoginUrl = "~/Account/Login"; } 

Compruebe si está haciendo referencia a este dll.

La respuesta de frennky me ayudó a llegar a esto. Necesitaba todo esto en mi web.config:

            

Para solucionar este problema, que aún existe en MVC 3, debe eliminar la WebMatrix. *. Dll de las carpetas _bin_deployableAssemblies y bin, respectivamente.

En lugar de esto:

    

Puedes usar esto:

    

Funcionó para mí

¿Se origina a partir de la redirección contenida en su resultado de la acción LogOn?

Busque en su proyecto la cadena LogIn y puede encontrar dónde se especifica.

Acabo de toparme con este problema (como 6 años después y esta página ya no ocupa un lugar destacado en las búsquedas …) mi solución era similar a santiagoIT.

Debido a que agregué autenticación a un proyecto que no la tenía previamente, prácticamente “hice trampa” al copiar el código de autenticación requerido de una plantilla de proyecto predeterminada que incluía:

 app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Account/Login"), Provider = new CookieAuthenticationProvider { OnValidateIdentity = SecurityStampValidator.OnValidateIdentity( validateInterval: TimeSpan.FromMinutes(30), regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) } }); 

La url de autenticación de formularios usaba web.config para todas mis páginas aspx pero se destruyó cuando agregué el atributo Autorizar.

Cambiar el LoginPath solucionó mi problema.