asp.net - not - ¿Cómo redirigir fácilmente si no está autenticado en MVC 3?
authorize mvc c# (4)
Acabo de intentar esto:
<!-- using custom auth with MVC redirect -->
<authentication mode="None">
<forms loginUrl="~/Home/Index"/>
</authentication>
y todavía funciona, aunque estoy usando autenticación personalizada. Sin embargo, no estoy seguro sobre el tiempo de espera: [Autorizará] seguirá usando el predeterminado para Autenticación de formularios o no administrará los tiempos de espera en absoluto (comportamiento preferido para la autenticación personalizada).
Soy nuevo en ASP.NET, y estoy tratando de encontrar una manera de redirigir fácilmente a un usuario no autenticado desde cualquier página del sitio a la página de inicio de sesión. Preferiría no colocar el siguiente código en cada función HTTP GET si hay otra opción.
if (!Request.IsAuthenticated)
{
return RedirectToAction("LogOn", "Account");
}
Marque su controlador con el atributo [Authorize]
http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.aspx
Consulte su configuración web. De forma predeterminada, debe tener la autenticación de formularios activada en authentication mode="Forms"
http://msdn.microsoft.com/en-us/library/eeyk640h.aspx
También vea esta pregunta ASP.NET MVC Authorization
En caso de que desee tener un comportamiento de Autorización personalizado, haga clic aquí Personalización de la autorización en ASP.NET MVC
Puede colocar el atributo [Authorize]
sobre cada acción que deba autenticarse.
Además, asegúrese de que esta sección esté definida en su Web.Config:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
Utilicé el siguiente fragmento de código y encontré que era muy elegante y no necesitaba escribir ninguna declaración de redireccionamiento. MVC se encarga de la redirección en función de la configuración de la página de inicio de sesión de formularios y, al iniciar sesión / registrarse correctamente, el usuario es enviado de vuelta a la página solicitada inicialmente
if (!User.Identity.IsAuthenticated)
{
//return new HttpUnauthorizedResult(); //This or the below statement should redirect the user to forms login page
return new HttpStatusCodeResult(System.Net.HttpStatusCode.Unauthorized);
}