Членство в NHibernate и ASP.NET - PullRequest
5 голосов
/ 17 июня 2011

Я использую ASP.NET MVC 3 для приложений, которые интенсивно используют пользователи или роли.

Для создания пользователя и назначения ролей я использую стандартный процесс через членство в ASP.NET.

Во всем приложении я использую NHibernate для базового доступа к данным, за исключением тех мест, где были использованы реализации MembershipProvider и RoleProvider по умолчанию (внутри AccountController, который делегирует вызовы этим реализациям).

Мне бы хотелосьиспользовать NHibernate для того, чтобы иметь возможность читать / редактировать / изменять значения в тех таблицах, которые управляются членством ASP.NET.

Я нашел два решения:

  1. Напишите собственную реализацию NHibernate для MembershipProvider и RoleProvider (или даже используйте this ).Это самый сложный путь.

  2. Отобразить только таблицы (как описано здесь ) и затем напрямую использовать NHibernate (хотя любые действия по умолчанию из AccountController по-прежнему будут обрабатываться по умолчаниюпоставщики).

Есть предложения / рекомендации?

1 Ответ

3 голосов
/ 17 июня 2011

Я пользуюсь пользовательским провайдером, с которым вы связываетесь, довольно успешно. Я внес несколько изменений в него, чтобы он использовал один сеанс в течение всей своей жизни.

Если вы хотите использовать членство в ASP.net, я думаю, что этот подход - ваш лучший выбор, в основном для переносимости (он не зависит от присутствия какого-либо SP в вашей базе данных). В настоящее время я использую модифицированный провайдер из этой ссылки для MSSQL и Postgres без проблем, и я также использовал его для MySQL.

...