asp.net nhibernate asp.net-membership persistence

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:

  1. 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.

  2. 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.
  3. Olvídate de M / R / P y crea un servicio de administración de usuarios por separado basado en NHibernate
  4. Olvídate de ambos y usa J2EE / RoR / merb / DJango / etc. (Por favor, no elijas esta opción :))
  5. 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.



También hay un proveedor de Membresía basado en NHibernate en CodePlex