Lluís Franco on Geeks.ms
  • Home

Usando ASP.NET membrership en Winforms (2 / n)

  • By lfranco
  • Feb-4-2010
  • Sin categoría
  • 5 Comments.

Creando la base de datos de membresía

La base de datos de membrsía es el lugar en el que se van a almacenar los datos de los usuarios de nuestras aplicaciones. Si, de nuestras aplicaciones en plural, porque este sistema está preparado para gestionar datos de tantas aplicaciones como sea necesario. De modo que el primer paso va a ser crear esta base de datos en un servidor SQL Server. Por cierto, cualquier edición vale, desde la Express hasta la Professional.

Lo primero que vamos a hacer es ejecutar el comando aspnet_regsql desde la línea de comandos de Visual Studio, para iniciar el asistente que nos guiará en la creación de nuestra base de datos de membresía:

aspnet_regsql

Una vez iniciado, el aisitente pregunta si vamos a crear la base de datos o a eliminar la información de membresía de una base de datos ya existente. Una vez elegimos la primera opción nos pedirá el nombre del servidor de SQL y de la base de datos. En caso que no exista la base de datos se creará una. En nuestro caso elegiremos la instancia de SQL Server express local y (en un derroche de imaginación) llamaremos a nuestra base de datos ‘Test’:

createdbwizard1

Examinando la base de datos creada

testdb Una vez creada, nos conectaremos a la base de datos para examinar que objetos se ha creado. Lo primero que llama la atención es que hay una serie de tablas, vistas y procedimientos almacenados cuyo nombre empieza por el prefijo ‘aspnet_’, y yo me pregunto ¿no hubiese sido mucho más elegante utilizar un Schema en lugar de esta nomenclatura? Bueno, supongo que si se ha usado esta nomenclatura será por compatibilidad con SQL Server 2000, ya que los esquemas no aparecieron hasta la versión 2005.

La estructura de esta base de datos no es importante para nosotros, ya que en ningún caso vamos a acceder directamente a la base de datos. Todos nuestro trabajo se realizará a través del modelo de objetos de membresía desde nuestra aplicación .NET. De todos modos demos un vistazo a las tablas más interesantes:

aspnet_Applications: Es la tabla en la que se almacenan los datos de las distintas aplicaciones que van a usar esta base de datos. Sólo guarda el nombre y un identificador GUID para usarlo como clave en las tablas de usuarios, roles, etc.

aspnet_MemberShip: Guarda los datos de los usuarios del sistema de Membresía de forma conjunta con otra tabla llamada aspnet_Users. Así, los datos de cada usuario del sistema quedan divididos entre estas dos tablas, guardando la primera los datos relativos a la seguridad (contraseña, tipo de almacenamiento de la contraseña, pregunta y respuesta de seguridad) y en la segunda los datos propios del usuario (nombre, fecha de la última actividad).

aspnet_Roles: Almacena los datos relativos a los grupos de usuarios. Los grupos son usados para establecer los permisos de uno o varios usuarios. Posteriormente desde nuestra aplicación preguntaremos si un usuario pertenece a uno u otro rol para permitir o revocar permiso sobre ciertas acciones.

aspnet_UsersInRoles: Como su nombre indica mantiene una relación de los usuarios que pertenecen a cada uno de los roles. De este modo podremos saber qué usuarios pertenecen a qué roles.

Existen otras características que pasaremos por alto porque dan para otros artículos, como por ejemplo la posibilidad de almacenar datos para distintos usuarios  sin tener que almacenarlos en otra tabla de otra base de datos.

Nota: Hay un detalle curioso que refuerza la posibilidad de la compatibilidad con versiones anteriores, y es la auséncia de funciones de usuario en la base de datos. Resulta curioso como muchas de las características de los procedimientos almacenados se podrían haber implementado como funciones.

Accediendo a la base de datos desde .NET

En el siguiente post veremos el modelo de objetos de membresía, este modelo está disponible para acceder y manipular este repositorio desde nuestras aplicaciones .NET, y que se encuentra en los namespaces System.Web y System.Web.Extensions (aunque como decíamos podemos usarlo desde cualquier tipo de aplicación).

Saludos,


Artículos anteriores de la serie:

Usando ASP.NET membrership en Winforms (1 / n)

 


 

Actualización (artículos siguientes):

Usando ASP.NET membrership en Winforms (3 / n)

Comments

5 Responsesso far

  1. anonymous dice:
    5 febrero, 2010 a las 2:29 pm

    Amigo muy buena guia, excelente, queria solo preguntarte unacosa, hay como tener las tablas en otra base de datos que no sea sqlsever??

    Responder
  2. lfranco dice:
    5 febrero, 2010 a las 5:30 pm

    No que yo sepa, aunque el sistema de proveedores es abierto.
    Oracle tenía uno pero no he podido encontrarlo :-/

    Responder
  3. anonymous dice:
    8 febrero, 2010 a las 9:57 am

    Existe la posibilidad de crear el esquema desde código en lugar de tirar de asistente? Sería cojo… poder lanzar un script o similar desde nuestra app

    Gracias

    Responder
  4. lfranco dice:
    9 febrero, 2010 a las 9:12 am

    🙂
    Hola Julio,

    En este caso lo más sencillo es un BACKUP/RESTORE o generarte un SCRIPT (p.e. con RedGate o similares).
    Un saludo,

    Responder
  5. anonymous dice:
    6 marzo, 2010 a las 11:23 am

    Buenos dias.
    Estoy intenado hacerlo pero no tengo el «aspnet_regsql» tengo el Visual Sturio 2008 Profesional Fm 3.5 SP1
    Como lo puedo solucionar.

    Responder

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

← Previous Post Next Post →

Tags

async Back best practices

Entradas recientes

  • Video de mi charla en la #dotNetSpain2016
  • I’m back. Miss me?
  • Office365 actualizado a 2013 para nuevas suscripciones
  • Serializar listas genéricas en aplicaciones WinRT
  • [TPL] Problemas de concurrencia

Comentarios recientes

  • Darling Chavez en Tip: Mostrar objetos relacionados en DevExpress GridControl
  • Alexander en [TPL] Problemas de concurrencia
  • cristinakity en Funciones escalares en TSQL, JOINS, CROSS APPLY, y la madre que parió al topo.
  • cristinakity en Funciones escalares en TSQL, JOINS, CROSS APPLY, y la madre que parió al topo.
  • anonymous en HowTo: Crear una pantalla de inicio (splash screen)

Archivos

  • marzo 2016
  • marzo 2013
  • octubre 2012
  • septiembre 2012
  • agosto 2012
  • febrero 2012
  • diciembre 2011
  • noviembre 2011
  • octubre 2011
  • septiembre 2011
  • agosto 2011
  • junio 2011
  • mayo 2011
  • abril 2011
  • febrero 2011
  • enero 2011
  • diciembre 2010
  • noviembre 2010
  • octubre 2010
  • agosto 2010
  • julio 2010
  • marzo 2010
  • febrero 2010
  • enero 2010
  • diciembre 2009
  • noviembre 2009
  • octubre 2009
  • septiembre 2009
  • agosto 2009
  • julio 2009
  • junio 2009
  • mayo 2009
  • abril 2009
  • marzo 2009
  • febrero 2009
  • enero 2009
  • diciembre 2008
  • noviembre 2008
  • octubre 2008
  • septiembre 2008
  • agosto 2008
  • julio 2008
  • junio 2008
  • mayo 2008
  • abril 2008
  • marzo 2008
  • febrero 2008
  • enero 2008
  • diciembre 2007
  • noviembre 2007
  • octubre 2007
  • septiembre 2007
  • agosto 2007
  • abril 2007
  • febrero 2007
  • enero 2007

Categorías

  • .NET
  • C#
  • Channel9
  • Evento
  • Personal
  • Videos

Meta

  • Acceder
  • RSS de las entradas
  • RSS de los comentarios
  • WordPress.org
About This Site

A cras tincidunt, ut tellus et. Gravida scel ipsum sed iaculis, nunc non nam. Placerat sed phase llus, purus purus elit.

Archives Widget
  • January 2010
  • December 2009
  • November 2009
  • October 2009
Categories
  • Entertainment
  • Technology
  • Sports & Recreation
  • Jobs & Lifestyle
Search
  • facebook
  • twitter
  • rss

Powered by WordPress  |  Business Directory by InkThemes.

This site uses cookies: Find out more.