12

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

У меня есть универсальное приложение 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...
  • Что вы подразумеваете под "хранить идентификатор пользователя в NHibernate"?

    от epitka
  • Я имею в виду, что я храню guid пользователя, например, в классе Topic / Post / Comment / etc, и использую GetUserName из membershipprovider, чтобы получить его настоящее имя из guid.

    от SztupY
  • 2

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

    CodePlex

  • 6

    Я бы пошел на шаг 2 (почти

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

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

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

  • 1

    У 4 парней из Rolla есть отличное сообщение

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