5

Używam ASP.NET MVC 3 dla aplikacji, która intensywnie wykorzystuje lub użytkowników i role.Członkostwo NHibernate i ASP.NET

Aby utworzyć użytkownika i przypisać rolę (y), używam standardowego procesu poprzez członkostwo ASP.NET.

W całej aplikacji używam NHibernate do podstawowego dostępu do danych, z wyjątkiem miejsc, w których zastosowano domyślne implementacje MembershipProvider i RoleProvider (w kontrolerze AccountController, który deleguje wywołania do tych implementacji).

Chciałbym użyć NHibernate, aby móc odczytać/edytować/modyfikować wartości w tabelach zarządzanych przez członkostwo ASP.NET.

znalazłem dwa rozwiązania:

  1. Napisz niestandardowej implementacji NHibernate dla MembershipProvider i RoleProvider (lub nawet użyć this one). To najtrudniejsza ścieżka.

  2. Mapuj tylko tabele (zgodnie z opisem here), a następnie użyj bezpośrednio NHibernate (chociaż domyślne akcje z AccountController będą nadal obsługiwane przez domyślnych dostawców).

Wszelkie sugestie/rekomendacje?

Odpowiedz

3

Użyłem niestandardowego operatora, z którym łączysz, osiągając całkiem niezły sukces. Wprowadziłem kilka zmian, aby korzystać z jednej sesji przez całe życie.

Jeśli chcesz korzystać z członkostwa w ASP.net, myślę, że podejście jest najlepszym rozwiązaniem, głównie w przypadku przenoszenia (nie polega na obecności SP w bazie danych). Obecnie używam zmodyfikowanego dostawcy z tego linku przeciwko MSSQL i Postgres bez żadnych problemów, i użyłem go również przeciwko MySQL.

+0

Rozumiem. Ale nie ma testów jednostkowych dla tej implementacji. –

+0

Piszę testy jednostkowe dla tej implementacji i tak działa świetnie po wyjęciu z pudełka :-) (do tej pory). –

+0

Niesamowite, cieszę się, że działa. Nigdy nie zdążyłem napisać testów na ten temat, proszę napisać: D – AlexCuse

Powiązane problemy