none
Como puedo obtener los conroller y action de mi proyecto RRS feed

Respuestas

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

    lunes, 4 de enero de 2016 23:41
  • 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 

    lunes, 4 de enero de 2016 23:56
  • 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

    martes, 5 de enero de 2016 0:22
  • 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

    martes, 5 de enero de 2016 0:56
  • >>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

    martes, 5 de enero de 2016 1:06
  • 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

    martes, 5 de enero de 2016 1:34
  • 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


    martes, 5 de enero de 2016 5:20
    Moderador
  • Muchas gracias Sergio. Saludos
    martes, 5 de enero de 2016 22:17