none
¿Como redireccionar un usuario no autorizado a una vista especifica? RRS feed

  • Pregunta

  • Buen dia,

    tengo una sitio construido con autenticacion de windows y brindo permisos en el controlador mediante grupos de seguridad en el dominio asi como se muestra en el ejemplo:

     [Authorize(Roles = @"Domain\DomainGroup")]
            public ActionResult IndexAdmin()
            {           
                return View();
            }

    Sin embargo aquellos que no cuentan con este grupo de seguridad el aplicativo se queda siempre solicitando credenciales hasta que finalmente sale un error, me gustaría poder redirigir al usuario a otra vista donde yo pueda indicarle que debe solicitar los permisos.

    Agradezco su colaboración. 

    viernes, 2 de diciembre de 2016 19:56

Respuestas

  • Hola,

    para poder realizar lo que deseas deberías implementar tu atributo Authorize personalizado y aplicarlo despue´s en tus acciones.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    public class MyCustomAuthorize : AuthorizeAttribute
    {
       protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
       {
         // redireccionar
         filterContext.Result = new RedirectResult("[MiURL]");
       }
     }

    Lo aplicarías así

    [MyCustomAuthorize]
    public class AdminController : Controller
    {
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta Jeff M Quintero miércoles, 21 de diciembre de 2016 13:04
    lunes, 5 de diciembre de 2016 8:50
    Moderador