Вопрос по asp.net, nhibernate, asp.net-membership, persistence – Лучшие практики для присоединения к сервисам членства / роли / профиля nhibernate и ASP.NET

12

У меня есть универсальное приложение ASP.NET (MVC), которое использует NHibernate в качестве уровня персистентности модели и службы ASP.NET Membership / role / profile в качестве уровня управления пользователями.

Вопрос в том, что можно считать наилучшей практикой для создания связей между данными домена и пользователями. (Например, я хочу создать форумную систему, я хочу связать каждую тему / сообщение с определенным пользователем и отображать пользователя при каждом запросе).

Это те положения, о которых я думал:

  1. Store the user ID in NHibernate (like having a Guid column in all your domain classes (Posts, Topics etc.) that needs to reference a User) and use GetUser each time you need the name of the user from the guid (which might result in n+1 queries)

    B variant: Alternatively store the user name too.

  2. Use the same database, and create a read-only NHibernate maintaned domain object User, that maps to the same data as the M/R/P services do.
  3. Forget about M/R/P and create a separate user management service based on NHibernate
  4. Forget about both and use J2EE/RoR/merb/DJango/etc. (please don't pick this option :) )
  5. other...
Я имею в виду, что я храню guid пользователя, например, в классе Topic / Post / Comment / etc, и использую GetUserName из membershipprovider, чтобы получить его настоящее имя из guid. SztupY
Что вы подразумеваете под "хранить идентификатор пользователя в NHibernate"? epitka

Ваш Ответ

3   ответа
2

Существует также провайдер членства на основе NHibernate наCodePlex

6

Я бы пошел на шаг 2 (почти, так как он не обязательно должен быть доступен только для чтения) и создал пользовательский поставщик членства для NHibernate.

Чтобы сэкономить время, вы можете использовать существующий, такой какМануэль Абадия.

При этом вы сохраняете всю мощь NHibernate (ленивая загрузка и т. Д.) И наслаждаетесь услугами M / R / P.

1

У 4 парней из Rolla есть отличное сообщение, если вы хотите создать своего собственного провайдера поверх API членства asp.net:http://www.4guysfromrolla.com/articles/110310-1.aspx

Похожие вопросы