Experiencias de un programador curioso del SEO
Custom ActionFilter
Ando liado con un proyecto en asp mvc 2.0 y ya sabeis que me gusta compartir lo que voy aprendiendo asi que hoy os voy a proponer aprender a realizar nuestro propio Custom ActionFilter. Un ActionFilter nos permite interceptar la llamada a un action antes de empezar a ejecutar el código de la misma. Esto nos puede servir por ejemplo para reestablecer la cultura de la aplicación o como en el ejemplo que os voy a mostrar forzar a un action de nuestro controlador a ser accesible solo cuando el usuario este autentificado.
Código de nuestro Custom Action Filter
public class OnlyAuthenticatedFilterAttribute : ActionFilterAttribute
{
public OnlyAuthenticatedFilterAttribute()
{
}
public override void OnActionExecuting(ActionExecutingContext ActionContext)
{
if (!ActionContext.HttpContext.User.Identity.IsAuthenticated)
{
string returnUrl = "~/Login/?ReturnUrl=" + HttpContext.Current.Request.RawUrl;
ActionContext.HttpContext.Response.Redirect(returnUrl, true);
}
}
}
Como veis sobreescribimos la función OnActionExecuting que nos permite captura la llamada al action. En ella utilizando el ActionExecutingContext comprobamos si el usuario actual esta autenficado y en caso de no estarlo lo redirigimos a una página de login.
Implementación del Custom Filter en nuestra Action
[OnlyAuthenticatedFilterAttribute()]
public ActionResult Index()
{
return View();
}
Espero que este ejemplo os haya sido claro y os sea útil para vuestros proyectos en asp mvc 2. Como siempre para vuestra comodidad os dejo el código en pastebin
| Imprimir artículo | Este artículo fue publicado por jmnieves el junio 8, 2010 a las 11:50 am, y está archivado en .NET. Sigue las respuestas a esta entrada a través de RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio. |