Wpf-Benutzersicherheitsstrategie

HINTERGRUND:

Ich erstelle eine WPF-Anwendung (.NET 4.5 mit MVVM-Light)

Ich habe Benutzerrollen in der Datenbank erstellt, die die WPF-Anwendung unterstützen, wobei den Benutzern der WPF-App eine Rolle zugewiesen wurde (d. H.Benutzer, Manager, Eigentümer, Administrator)

WAS ICH MÖCHTE:

Mein Kunde möchte einschränken können, was die Benutzer sehen und was die Benutzer basierend auf ihrer Rolle tun können. Es gibt einige Ansichten, die für alle Benutzer sichtbar sind. Daher sollten einige visuelle Elemente (Raster, Schaltflächen usw.) je nach Benutzerrolle ausgeblendet oder deaktiviert werden.

WAS ICH HABE:

Ich habe einen IUserService erstellt, der in jedes Ansichtsmodell eingefügt wird. Die Rollen, die ich erstellt habe, haben ein Feld, das ihre Sicherheitsstufe kennzeichnet (einfach eine ganze Zahl von 1 bis 5). Anhand dieser Nummer möchte ich die Sichtbarkeit visueller Elemente einschränken können.

Mein Plan ist es beispielsweise, die Sichtbarkeit des Elements an eine boolesche Eigenschaft (mithilfe eines boolToVisibility-Konverters) im Ansichtsmodell (Ebene 1, Ebene 2 usw.) zu binden, und diese Eigenschaft würde true zurückgeben, wenn die Benutzerebene der Eigenschaft entspricht oder größer als diese ist Niveau.

MEINE BEDENKEN:

Mein Anliegen ist, dass dies eine Menge Arbeit ist, die in jedem Ansichtsmodell und in jedem visuellen Element, das benötigt wird, implementiert werden muss. Außerdem habe ich bereits einige visuelle Elemente, die von anderen Geschäftslogiken betroffen sind.

FRAGE:

Was ist eine effiziente Methode, um die Fähigkeit von Benutzern, visuelle Elemente basierend auf einer Benutzerrollenstrategie anzuzeigen, einzuschränken?

Ich bin bereit, mit dieser Arbeit zu beginnen. Ich würde jedoch gerne einige andere Ideen aus der Community dazu hören, wie benutzerrollenbasierte Sicherheit in einer WPF-Anwendung implementiert wird.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage