Principales respuestas
Como puedo obtener los conroller y action de mi proyecto

Pregunta
-
Respuestas
-
A través de reflection podrías obtener todas las clases que heredan de Controller y a su vez, dentro de cad clase recuperar los métodos que devuelvan un ActionResult http://stackoverflow.com/questions/21583278/getting-all-controllers-and-actions-names-in-c-sharp
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos
- Editado Sergio ParraModerator martes, 5 de enero de 2016 5:25
- Marcado como respuesta Yordany15 martes, 5 de enero de 2016 22:17
Todas las respuestas
-
hola
creo que deberias explicarte mejor
como es eso de obtener los controladores y acciones? la verdad no entendi que quieres lograr
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Muchas gracias por responder, lo que deseo hacer es obtener una lista con los controladores de mi proyecto, y las accione de cada controlador. En mi proyecto a la hora de asignar permiso a los roles necesito tener los controladores y las acciones, de ese modo puedo definir a que tiene permiso cada rol.
Saludos
-
hola
pero los permisos no se aplican de esa forma
puedes definir atributos a los controller y sus action indicando logica que permite o no el acceso a los mismo a ese usuario
podrias crear un atributo custom si es que las reglas son algo dinamicas
Writing your own custom ASP.Net MVC [Authorize] attributes
en resumen tu no debes listar nada, sino que defines en los controller y action que quieres aplciar seguridad el atributo que valida cuando se ingresa si puede realizarse con los roles que tiene esa persona
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Lo que estoy buscando es administrar la aplicación en tiempo de ejecución, crear un rol, asignarle el rol a un usuario y asignarle permisos a ese rol, en tiempo de ejecución.
Lo defino de este modo:
protected override bool AuthorizeCore(HttpContextBase httpContext) { var ins = new CustomValidateUser(); var routeData = httpContext.Request.RequestContext.RouteData; var controller = routeData.GetRequiredString("controller"); var action = routeData.GetRequiredString("action"); var autorizado = ins.ValidaUsuario(controller, httpContext.User, action); return autorizado; }
[AllowAnonymous] public ActionResult Index() { return View(); }
para ello el rol con que cuenta el usuario debe tener permiso al controlador y la la acción, no se si me explico.
saludos muchas gracias por responder
-
>>Lo que estoy buscando es administrar la aplicación en tiempo de ejecución, crear un rol, asignarle el rol a un usuario y asignarle permisos a ese rol, en tiempo de ejecución.
si eso quedo muy claro, pero para esto no necesitas listas ningun controller o action
se supone que cuando creas un controller o action tu sabes que existe, entonces al crear por ejemplo el HomeController en la tabla de tu db defines una row que represente a este controller
pero eres tu mediante un script que creas el dato en la tabla y luego usas esa info para cargar combos o listas
dinamicamente no se descubre nada para deinir la configuracion
a dodne apuntaba con mi respuesta es como aplicabas la cnfiguracion para definir la seguridad y permitir o no el acceso segun lo configurado
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
si realmente lo tengo registrado en un xml de este modo
<menu > <group Text="Controller" > <item Text="action1" NavigateUrl="action1"/> <item Text="action2" NavigateUrl="action2" /> </group> </menu >
solo quería saber si se podía hacer de forma dinámica. Muchas gracias.
Saludos
-
A través de reflection podrías obtener todas las clases que heredan de Controller y a su vez, dentro de cad clase recuperar los métodos que devuelvan un ActionResult http://stackoverflow.com/questions/21583278/getting-all-controllers-and-actions-names-in-c-sharp
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos
- Editado Sergio ParraModerator martes, 5 de enero de 2016 5:25
- Marcado como respuesta Yordany15 martes, 5 de enero de 2016 22:17
-