Wie in allen Branchenanwendungen kann eine Anwendung mehrere Users
mit einigen zugewiesenen Roles
haben. Wir haben kürzlich auf WPF MVVM Architecture umgestellt und suchen nach der besten Möglichkeit, jedem angemeldeten Benutzer eine Rolle zuzuweisen. Es gibt viele Begriffe, die über das Internet laufen, wie Authentifizierung, RoleManager, LoginService usw., aber ich bin mir nicht sicher, mit wem ich arbeiten soll.Zuweisen von Rollen zu Anwendungsbenutzern
Hier ist, was wir haben:
Eine kleine Business-Anwendung (mit 20 Forms), innerhalb eines einzigen Projekts entwickelt. Wir verwenden MVVM
Architektur, LINQ-to-SQL
als DataAccess und Model
, mit Repository pattern
und Unit Of Work
.
Was wir wollen:
Es gibt verschiedene Formen und jede Form hat Einsatz, Update, , Druck etc Operationen löschen. Was wir wollen ist, einen angemeldeten Benutzer entsprechend seiner Rolle zu beschränken - auf die Aufgabe, die er ausführen kann. d.h. z.B. Admin ist frei zu tun "irgendetwas" mit der Anwendung, während einige andere Benutzer möglicherweise nicht erlaubt, einige Formulare zu sehen oder einige Operationen ausführen (nämlich aktualisieren oder löschen).
Wie können wir das erreichen? Welche Art von Service könnte verwendet werden, um diesen vollständigen Mechanismus unter Verwendung der MVVM-Architektur in einer Desktop-LOB-Anwendung auszuführen. Ein technischer Begriff oder ein Tutorial-Link wird hilfreich sein.
Ich hoffe, ich bin klar und vielen Dank im Voraus.
Edit: Ich ging durch viele Foren und Artikel herum, aber alle von ihnen konzentriert sich auf ASP.NET. Sie können immer noch keine konkrete Implementierung für die Zuweisung von Rollen in WPF finden. Und die Quellen auf ASP.NET entsprechen nicht gut mit WPF.
Was mvvm Rahmen Sie verwendet haben oder haben Sie Ihre eigene Rolle? –
Wir haben das gleiche Problem. Die meisten Berechtigungen sind fest codiert. Wir planten, vollwertige ACL zu implementieren. Mein Kollege bietet WCF Roles Service (http://msdn.microsoft.com/en-us/library/bb386424(v=vs.100).aspx) als fertige Infrastruktur an. Wir sind uns aber immer noch nicht sicher, wie wir Berechtigungen in Viewmodels am besten anwenden können, weil wir so viel wie möglich hardcoding vermeiden wollen. Wir haben uns auch entschieden, Prism zu betrachten. Wir vermuten, dass es die erforderliche Funktionalität enthält. –
Haben Sie jemals darüber nachgedacht, AOP für diese Aufgabe zu verwenden? http://izlooite.blogspot.ru/2010/06/aspect-oriented-programming.html http://stackoverflow.com/questions/325558/aspect-oriented-programming-examples http: //www.sharpcrafters .com/ Disclaimer: Ich bin neu in diesem Ansatz und weiß fast nichts darüber. Aber Code-Kontakte sind gleich, also denke ich, dass es helfen könnte. –