Pregunta

Estoy usando el SQLMembershipProvider y quiero agregar una carga más información sobre los usuarios. ¿Es la mejor manera de hacer esto para crear una nueva base de datos y crear una entrada para cada nuevo usuario a medida que se crean? Si es así, ¿hay alguna razón para no utilizar el valor de ID de usuario de SQLMembershipProvider como PK en la tabla de usuarios en mi nueva base de datos?

O, ¿existen buenas razones para crear un nuevo ID de usuario en mi nueva base de datos y utilizar el ID de usuario del proveedor de SQLMembership como el FK?

¿Fue útil?

Solución

No puedo pensar en una razón por la que eso no funcionaría o por qué no deberías hacerlo de esa manera (usuario como PK)

No estoy seguro de por qué usaría una base de datos separada para todo, probablemente crearía la tabla en la base de datos actual y la configuraría usando el ID de usuario como un FK en la tabla aspnet_users.

Otros consejos

Si va a reescribir el proveedor de membresía, cambiaría todas las columnas PK a BITINT desde GUID. Haría esto por dos razones; uno de los números secuenciales es mucho más fácil de trabajar y comprender, y segundo, hay beneficios de rendimiento al usar BIGINT en lugar de los ID de GUID. También usaría mi propia columna de identificación que se puede usar para agregar otras tablas en la aplicación y eliminar la que viene por defecto en el proveedor de membresía de SQL. Para hacer esto, deberá proporcionar el código para cada función en el proveedor, no es una tarea pequeña.

He creado un contenedor alrededor de mi esquema de base de datos existente, con una clase derivada de MembershipUser que contiene las propiedades adicionales, y un derivado MembershipProvider que crea instancias del clase MembershipUser derivada.

Solo uso los métodos de actualización y autenticación de Membresía, ya que las otras API compatibles son algo limitadas. Tengo una API de usuario para crear / editar por separado para uso administrativo.

Esta solución se está utilizando actualmente en varios sitios y funciona bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top