La mejor práctica para unirse a los servicios de membresía/rol/perfil de nhibernate y ASP.NET
asp.net-membership persistence (3)
Tengo una aplicación genérica ASP.NET (MVC), que utiliza NHibernate como capa de persistencia del modelo y servicios de Membresía / función / perfil de ASP.NET como la capa de administración de usuarios.
La pregunta es qué se puede considerar como la mejor práctica para crear enlaces entre los datos de dominio y los usuarios. (Por ejemplo, quiero crear un sistema de foro. Quiero vincular cada tema / publicación a un usuario específico, y quiero mostrar el usuario en cada solicitud).
Estas son las posibilidades en las que he estado pensando:
Almacene el ID de usuario en NHibernate (como tener una columna Guid en todas las clases de dominio (Publicaciones, Temas, etc.) que necesite referenciar a un Usuario) y use GetUser cada vez que necesite el nombre del usuario del guid (lo que podría resultar en n + 1 consultas)
Variante B: también puede almacenar el nombre de usuario.
- Use la misma base de datos y cree un usuario de dominio de mantenimiento NHibernate de solo lectura, que se correlaciona con los mismos datos que los servicios de M / R / P.
- Olvídate de M / R / P y crea un servicio de administración de usuarios por separado basado en NHibernate
- Olvídate de ambos y usa J2EE / RoR / merb / DJango / etc. (Por favor, no elijas esta opción :))
- otro...
Me gustaría ir al paso 2 (casi, ya que no necesariamente tiene que ser de solo lectura) y crear un proveedor de membresía personalizado para NHibernate.
Para ahorrar tiempo puede usar uno existente como el de Manuel Abadia .
Con eso mantienes toda la potencia de NHibernate (carga diferida, etc.) y también disfrutas de los servicios M / R / P.
4 chicos de rolla tienen una excelente publicación si quieres construir tu propio proveedor sobre la API de membresía asp.net: http://www.4guysfromrolla.com/articles/110310-1.aspx
También hay un proveedor de Membresía basado en NHibernate en CodePlex