2012-04-16 27 views
5

Jaki jest preferowany sposób integracji niestandardowego dostawcy członkostwa z Orchard?Niestandardowe członkostwo Orchard CMS

Widziałem kilka stanowisk na całym wdrożenie nowego IMembershipService i IUserService (od Orchard.Users), a następnie istnieją inne moduły, takie jak OpenAuthentication które zdają się zrobić dużo więcej niż (ale nadal używa UserPart? ?).

Mamy już napisanego dostawcę członkostwa ASP.NET, czy można go zintegrować bez zmian?

Odpowiedz

7

Niestandardowa implementacja IMembershipService jest rozwiązaniem, jeśli nie chcesz w ogóle używać domyślnego modułu Orchard.Users. Przydaje się, gdy nadal chcesz wykonywać uwierzytelnianie formularzy, ale po prostu przechowuj dane autoryzacji w innym miejscu, a nie w UserPart.

Jeśli chcesz utworzyć całkowicie niestandardowy schemat uwierzytelniania, który zastępuje domyślny format oparty na formularzu (nazwa użytkownika + hasło), przesuń IAuthenticationService.

Więc ogólnie rzecz biorąc:

  • IMembershipProvider chodzi o zarządzanie danymi uwierzytelniania (Create/odzyskać użytkowników)
  • IAuthenticationProvider jest o wykonywanie uwierzytelniania (sign in/out/get bieżący użytkownik itd.)

W zależności od potrzeb można zastąpić jedno lub oba.

Typowe moduły autoryzacji, takie jak OpenAuth, dodają dodatkowe opcje uwierzytelniania do istniejącego domyślnego, bez konieczności jego zastępowania, IIRC.

+3

W przypadku implementacji usługi IMembershipService przy użyciu oddzielnej składnicy danych, skąd pochodzi właściwość ContentItem dla użytkownika IUser? – Oll

+0

Hmmm, właściwie to dobre pytanie. "IUser" musi być elementem treści, więc trochę komplikuje, ale tylko trochę. Można utworzyć pojedynczy element treści (na przykład "Użytkownik") bez żadnych części i umieścić go jako wartość właściwości "ContentItem" dla każdego "IUser". Jeśli dołączenie innych części do użytkownika nie jest potrzebne w twoim scenariuszu, to zadziała idealnie. –

+0

Można również np. umieść tam bieżący element zawartości witryny, więc nie musisz niczego tworzyć. Aktualna strona jest dostępna poprzez 'IOrchardServices.WorkContext.CurrentSite'. –

Powiązane problemy