none
Asignar Roles sin utilizar ASP.NET Configuration!! RRS feed

  • Pregunta

  • Hola!!
    He creado Roles en el ASP.NET Configuration, para limitar el acceso a algunas acciones del controller.

    pero lo que quiero hacer es crear en el  login  la posibilidad de  asignar roles!!

     y poder utilizar:

    [Authorize(Roles="x_rol")]

    antes de la acción que quiera permitirle a ese rol... esto ya lo hago pero asignando roles en el asp.net configuration,
    ahora quiero hacerlo sin él...
    he leido que se puede hacer con un procedimiento almacenado que utiliza el ASP.NET configuration;
    he tratado de rastrearlo con el SQL Server Profiler, pero aun no doy con dicho procedimiento...
    como le hago para implementar esto!!

    Gracias!!
    domingo, 12 de septiembre de 2010 2:47

Respuestas

  • Hola,

    Si no quieres complicarte mucho la vida, puedes comenzar utilizando el sistema que viene implementado por defecto en las plantillas de proyectos ASP.NET MVC, en el que ya encontrarás las funcionalidades básicas para registrar e identificar usuarios.

    Usando el menú de Visual Studio "Proyecto > Configuración de ASP.NET" (o el botoncillo del explorador de soluciones) puedes acceder a la herramienta de configuración de tu aplicación, y crear usuarios, definir roles, asignarlos, etc. Automáticamente se te creará una base de datos local (en /App_Data) para almacenar esta información.

    Si lo que quieres es crear sobre tu base de datos SQL Server la infraestructura de datos del proveedor estándar (AspNetSqlMembershipProvider), puedes utilizar la herramienta "aspnet_regsql.exe" que encontrarás en la carpeta del framework (hay información sobre su uso en http://msdn.microsoft.com/es-es/library/x28wfk74(v=VS.100).aspx).

    Para asignar roles a usuarios sobre la base de datos sin usar la herramienta de configuración de ASP.NET, puedes utilizar los procedimientos almacenados que encontrarás en la misma base de datos. Si pruebas a abrir ASPNETDB.MDF (dentro de tu carpeta /App_Data) desde el mismo Visual Studio verás que hay gran cantidad de ellos, y por el nombre más o menos se puede deducir para qué sirven. Por ejemplo, hay uno llamado "aspnet_UsersInRoles_AddUsersToRoles" que asigna roles a usuarios.

    Sin embargo, quizás te podría resultar más interesante utilizar la clase SqlRoleProvider y realizar estas operaciones desde código. Por ejemplo, puedes utilizar el método AddUsersToRoles() para hacer lo mismo que llamando al procedimiento anterior. En esos enlaces hay ejemplos en los que puedes ver cómo se implementan.

    Saludos.


    José M. Aguilar
    Variable not found
    • Propuesto como respuesta jtorrecilla miércoles, 15 de septiembre de 2010 8:33
    • Marcado como respuesta Eder Costa jueves, 4 de octubre de 2012 15:56
    domingo, 12 de septiembre de 2010 12:03

Todas las respuestas

  • Hola,

    Si no quieres complicarte mucho la vida, puedes comenzar utilizando el sistema que viene implementado por defecto en las plantillas de proyectos ASP.NET MVC, en el que ya encontrarás las funcionalidades básicas para registrar e identificar usuarios.

    Usando el menú de Visual Studio "Proyecto > Configuración de ASP.NET" (o el botoncillo del explorador de soluciones) puedes acceder a la herramienta de configuración de tu aplicación, y crear usuarios, definir roles, asignarlos, etc. Automáticamente se te creará una base de datos local (en /App_Data) para almacenar esta información.

    Si lo que quieres es crear sobre tu base de datos SQL Server la infraestructura de datos del proveedor estándar (AspNetSqlMembershipProvider), puedes utilizar la herramienta "aspnet_regsql.exe" que encontrarás en la carpeta del framework (hay información sobre su uso en http://msdn.microsoft.com/es-es/library/x28wfk74(v=VS.100).aspx).

    Para asignar roles a usuarios sobre la base de datos sin usar la herramienta de configuración de ASP.NET, puedes utilizar los procedimientos almacenados que encontrarás en la misma base de datos. Si pruebas a abrir ASPNETDB.MDF (dentro de tu carpeta /App_Data) desde el mismo Visual Studio verás que hay gran cantidad de ellos, y por el nombre más o menos se puede deducir para qué sirven. Por ejemplo, hay uno llamado "aspnet_UsersInRoles_AddUsersToRoles" que asigna roles a usuarios.

    Sin embargo, quizás te podría resultar más interesante utilizar la clase SqlRoleProvider y realizar estas operaciones desde código. Por ejemplo, puedes utilizar el método AddUsersToRoles() para hacer lo mismo que llamando al procedimiento anterior. En esos enlaces hay ejemplos en los que puedes ver cómo se implementan.

    Saludos.


    José M. Aguilar
    Variable not found
    • Propuesto como respuesta jtorrecilla miércoles, 15 de septiembre de 2010 8:33
    • Marcado como respuesta Eder Costa jueves, 4 de octubre de 2012 15:56
    domingo, 12 de septiembre de 2010 12:03
  • Gracias:

     estoy probando aver cual de esos procedimientos almacenados me funciona!!

     

    miércoles, 15 de septiembre de 2010 8:25