Pregunta

Estoy en el proceso de cambiar un solo sitio web de SQL DB (ASP.NET/VB.NET) en una aplicación multiusuario, donde cada cliente tiene su propia base de datos.

En el sitio anterior, todos los roles ASP, inicios de sesión y proveedores apuntaban a la base de datos única.

Ahora tenemos múltiples bases de datos, me pregunto cuál sería la mejor arquitectura / técnicas para usar. Hay una base de datos que configura los inquilinos, como el nombre de la empresa, varias configuraciones (que normalmente estarían en un archivo web.config) y la cadena de conexión a su base de datos de inquilinos.

¿Deberíamos tener todos los miembros & amp; funciones de rol en la base de datos única que configura los inquilinos o tenemos membresía & amp; roles en cada base de datos de inquilinos individuales? La opción 2 parece complicada porque creo que a ASP.NET solo le gusta un conjunto de RoleProviders definidos en web.config.

¿Alguien ha intentado esto antes o tiene alguna recomendación?

¿Fue útil?

Solución

Si está utilizando el modelo de Membresía ASP.Net con los proveedores integrados, entonces colocarlos en una base de datos es lo más fácil como usted indicó.

Una opción, y no lo he intentado, es definir en su archivo web.config un proveedor para cada inquilino. Esto permitiría a cada inquilino tener su propia membresía db, y le permitiría evitar colisiones de nombre de usuario entre los inquilinos (si es un requisito).

Otros consejos

Debería poder configurar la cadena de conexión de la base de datos de membresía ASP.NET en tiempo de ejecución. Este hilo tiene algunas opciones que incluyen un proveedor de membresía personalizado o cambiar el valor desde el principio en el ciclo de vida de la solicitud a través de Global.asax.cs.

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