Podobnie jak we wszystkich aplikacjach dla linii biznesowych, aplikacja może mieć wiele numerów Users
z przypisanymi niektórymi Roles
. Niedawno przenieśliśmy się do architektury WPV MVVM i szukaliśmy najlepszego sposobu przypisania roli każdemu zalogowanemu użytkownikowi. Istnieje wiele terminów pływających w Internecie, takich jak uwierzytelnianie, RoleManager, LoginService itp., Ale nie jestem pewien, z którym się pracować.Przypisywanie ról użytkownikom aplikacji
Oto co mamy:
mała aplikacja gospodarczej (z 20 Form), opracowany w ramach pojedynczego projektu. Używamy architektury MVVM
, LINQ-to-SQL
jako DataAccess i Model
, z Repository pattern
i Unit Of Work
.
Co chcemy:
Istnieją różne formy, a każda postać ma wkładkę, aktualizacji, usuwać, drukowania itp operacje. Chcemy ograniczyć zalogowanego użytkownika zgodnie z jego rolą - do zadania, które może wykonać. np. dla np. Administrator może zrobić "dowolną" "z aplikacją, podczas gdy niektórzy inni użytkownicy mogą nie mieć możliwości przeglądania niektórych formularzy lub wykonywania niektórych operacji (mianowicie aktualizacji lub usuwania).
Jak możemy to osiągnąć; jaki rodzaj usługi mógłby zostać wykorzystany do realizacji tego kompletnego mechanizmu z wykorzystaniem architektury MVVM w aplikacji Desktop LOB. Pomocny będzie termin techniczny lub link do samouczka.
Mam nadzieję, że jestem jasny i z góry bardzo dziękuję.
Edytuj: Przeszedłem przez wiele forów i artykułów, ale wszystkie koncentrują się na ASP.NET. Nadal nie można znaleźć konkretnej implementacji dla przypisania ról w ramach WPF. A źródła na ASP.NET nie są zgodne z WPF.
Co MVVM ramy nie używasz lub nie toczyć własną rękę? –
Mamy ten sam problem. Większość uprawnień jest zakodowana na stałe. Planowaliśmy wdrożyć pełną listę ACL. Mój kolega oferuje usługę ról WCF (http://msdn.microsoft.com/en-us/library/bb386424(v=vs.100).aspx) jako gotową infrastrukturę. Jednak wciąż nie jesteśmy pewni najlepszego sposobu na zastosowanie uprawnień w ramach wizualizacji, ponieważ chcemy uniknąć hardcoding w takim stopniu, jak to tylko możliwe. Postanowiliśmy również spojrzeć na Prism. Podejrzewamy, że zawiera on wymaganą funkcjonalność. –
Przy okazji, czy kiedykolwiek rozważałeś użycie AOP do tego zadania? http://izlooite.blogspot.ru/2010/06/aspect-oriented-programming.html http://stackoverflow.com/questions/325558/aspect-oriented-programming-examples http: //www.sharpcrafters .com/ Nota prawna: Jestem nowy w tym podejściu i prawie nic o nim nie wiem. Ale kontakty do kodu są podobne, więc myślę, że mogłoby to pomóc. –