none
como personalizar Inicio de Sesión de una aplicación? RRS feed

  • Pregunta

  • Hola amigos muy buenas.

    Amigos, quería consultarles acerca de como puedo personalizar mi inicio de sesión con respecto a lo que viene por defecto cuando creo mi aplicación con ASP.NET MVC 3 Web Application utilizando Visual Studio 2010, se me crea un proyecto por defecto en la cual ya viene los módulos de inicio de sesión, registro de usuario, cambiar contraseña y ejecutando la aplicación se me crea una base de datos por defecto que tiene un nombre ASPNETDB.mdf, en la que se guarda los datos cuando me registro y todo funciona muy bien.

    El caso es que yo quiero adaptarlo a mi necesidad, la pregunta es: ¿los datos que se almacena a la base de datos ASPNETDB, lo quiero almacenar en mi base  de datos propia?, ¿Donde se encuentra el contexto de datos para estas entidades LogInModel, RegisterModel?, ¿porque no funciona cuando cambio en la app.config en nombre de la base de datos, a pesar que lo he borrado?. 

    La estructura de mi base de datos personalizado para inicio de sesión es esta.

    Por favor necesito su ayuda, y muchas gracias por su tiempo.

    Marcois

    viernes, 30 de noviembre de 2012 21:31

Respuestas

  • Para mover los datos del ASPNETDB a tu propia base de datos, necesitas hacer un par de cosas:

    a) Ejecuta el comando ASPNET_REGSQL.exe, que se encuentra dentro del directorio del Framework. Saldrá un asistente que te pregunta qué base de datos quieres configurar. Puedes indicarle la tuya, y le inyectará dentro las tablas y procedimientos almacenados necesarios para que funcione el mecanismo de Membership.

    b) Tienes que indicarle a Membership que quieres usar esa base de datos, cambiando la cadena de conexión. La cadena predeterminada está en el machine.config, y apunta al aspnetdb.mdf en modo instancia de usuario. Pero si suplantas esa cadena dentro de tu web.config, puedes hacer que membership funcione contra la BD que tú quieras. Se puede hacer de varias formas, pero una sencilla consiste en acudir a la sección connectionStrings, hacer un remove de la cadena "LocalSqlServer" (que es la que se hereda del machine.config) y volver a hacer un add de la misma cadena, pero apuntándola a la BD que tú quieras (y que previamente habrás configurado mediante el aspnet_regsql).

    • Marcado como respuesta marcois domingo, 9 de diciembre de 2012 2:27
    domingo, 2 de diciembre de 2012 7:49
  • Te recomiendo este enlace:

    http://www.brianlegg.com/post/2011/05/09/Implementing-your-own-RoleProvider-and-MembershipProvider-in-MVC-3.aspx

    Ahí está muy bien explicado como hacer para configurar tu propio membership provider y un role provider, yo lo hice basado en este blog y me ha ido muy bien.

    Si te quieres adentrar en el mundo del IIdentity y el IPrincipal, leete este post, con esto puedes adicionar información en la cache de autenticación, lo cual he encontrado muy poderoso como forma de adicionar información del usuario que está logueado sin necesidad de consultar en la base de datos, datos como por ejemplo: El nombre del usuario, su ID, El Email, Los códigos de los permisos que posee en la aplicación dependiendo del Role, información que no compromete la seguridad de tu aplicación web pero que en algunas ocasiones es bueno tenerlas a mano sin tener que consultar la base de datos.

    http://geeks.ms/blogs/etomas/archive/2010/12/16/asp-net-obtener-el-id-del-usuario-actual.aspx

    Espero te ayude,

    Saludos

    • Marcado como respuesta marcois domingo, 9 de diciembre de 2012 2:27
    miércoles, 5 de diciembre de 2012 15:25

Todas las respuestas

  • Para mover los datos del ASPNETDB a tu propia base de datos, necesitas hacer un par de cosas:

    a) Ejecuta el comando ASPNET_REGSQL.exe, que se encuentra dentro del directorio del Framework. Saldrá un asistente que te pregunta qué base de datos quieres configurar. Puedes indicarle la tuya, y le inyectará dentro las tablas y procedimientos almacenados necesarios para que funcione el mecanismo de Membership.

    b) Tienes que indicarle a Membership que quieres usar esa base de datos, cambiando la cadena de conexión. La cadena predeterminada está en el machine.config, y apunta al aspnetdb.mdf en modo instancia de usuario. Pero si suplantas esa cadena dentro de tu web.config, puedes hacer que membership funcione contra la BD que tú quieras. Se puede hacer de varias formas, pero una sencilla consiste en acudir a la sección connectionStrings, hacer un remove de la cadena "LocalSqlServer" (que es la que se hereda del machine.config) y volver a hacer un add de la misma cadena, pero apuntándola a la BD que tú quieras (y que previamente habrás configurado mediante el aspnet_regsql).

    • Marcado como respuesta marcois domingo, 9 de diciembre de 2012 2:27
    domingo, 2 de diciembre de 2012 7:49
  • Te recomiendo este enlace:

    http://www.brianlegg.com/post/2011/05/09/Implementing-your-own-RoleProvider-and-MembershipProvider-in-MVC-3.aspx

    Ahí está muy bien explicado como hacer para configurar tu propio membership provider y un role provider, yo lo hice basado en este blog y me ha ido muy bien.

    Si te quieres adentrar en el mundo del IIdentity y el IPrincipal, leete este post, con esto puedes adicionar información en la cache de autenticación, lo cual he encontrado muy poderoso como forma de adicionar información del usuario que está logueado sin necesidad de consultar en la base de datos, datos como por ejemplo: El nombre del usuario, su ID, El Email, Los códigos de los permisos que posee en la aplicación dependiendo del Role, información que no compromete la seguridad de tu aplicación web pero que en algunas ocasiones es bueno tenerlas a mano sin tener que consultar la base de datos.

    http://geeks.ms/blogs/etomas/archive/2010/12/16/asp-net-obtener-el-id-del-usuario-actual.aspx

    Espero te ayude,

    Saludos

    • Marcado como respuesta marcois domingo, 9 de diciembre de 2012 2:27
    miércoles, 5 de diciembre de 2012 15:25
  • Amigos: Alberto y David muchas gracias por su respuesta.

    Saludos.


    domingo, 9 de diciembre de 2012 2:28