Estaba leyendo otra pregunta sobre el bucle de inicio de sesión cuando tienes un usuario que inicia sesión, configurado para regresar a una URL a la que pueden no tener acceso después de iniciar sesión (es decir, una página de administración y el usuario inicia sesión con una cuenta).ASP.Net MVC cómo determinar si un usuario puede acceder a una URL?
La solución en WebForms parece ser utilizar el método UrlAuthorizationModule.CheckUrlAccessForPrincipal
. Sin embargo, eso no funciona para las URL dirigidas a Métodos de acción asegurados con el Atributo Autorizado. Pensé que podría averiguar a qué método apuntaba la URL y reflexionar sobre ella para resolver mi problema, pero parece que no puedo averiguar cómo obtengo esta información de la tabla de enrutamiento.
¿Alguien ha trabajado alguna vez con esto o tiene una solución para esto? Si puedo obtener la información de la ruta desde una URL, creo que podría trabajar el resto, pero si alguien tiene una solución genérica, es decir. algún método oculto similar al antes mencionado para MVC, entonces eso sería totalmente increíble también.
No estoy preguntando cómo comprobar si el usuario tiene acceso a un par de controlador/acción especificado. Lo primero y más importante es encontrar la forma de obtener el par Controlador/Acción de la tabla de rutas basada en la URL. La razón de toda la historia de fondo es que existe un equivalente a UrlAuthorizationModule.CheckUrlAccessForPrincipal
para MVC.
Voy a aceptar esto por ahora, ya que parece ser la mejor solución por el momento. Sin embargo, no estoy seguro de que realmente use esto.Realmente me gusta la idea de no tener que tener este tipo de lógica integrada en mis controladores, también me gustaría evitar el redireccionamiento adicional. – kastermester