Ich habe eine allgemeine Frage über den besten Ansatz für die Autorisierung von UI-Elementen für Anwendungsrollen. Was ich meine, ist, dass ein Administrator Tasten, Menüpunkte usw. sehen kann, die ein normaler Benutzer nicht sehen kann. Was ist die beste Vorgehensweise dafür?Autorisierung von UI-Elementen in .NET WinForms
Ich realisiere, dass es mehrere Bildschirme basierend auf der Rolle (ein Admin-Bildschirm, der gleiche Bildschirm für den Benutzer dupliziert, etc.), die auf jeden Fall wie Overkill scheint. Ich möchte auch die Trennung von Bedenken beibehalten, damit mein Autorisierungscode nicht mit der Anzeigefunktionalität vermischt wird. Mit anderen Worten, ich möchte vermeiden:
if(current_user.IsInRole("administrator"))
button.Enabled = true;
Ich habe auf Aspekte mit Postsharp suchen, die genau fast scheint, was ich tun will, aber es scheint nicht logisch mit dem UI zu erweitern.
Ich bin sicher, ich vermisse etwas, was ist das?
Dank -
Domenic -.. dank der SetPropertyIfInRoleAttribute (oder SetPropertyByRole Attribut) scheint ein guter Mittelweg zu sein, und von diesem Moment an stütze ich mich auf diesen Weg. Große Erklärung, danke für die Klärung. Jetzt sehe ich, Lambda in einem Attribut-Konstruktor wäre sehr nützlich! – grefly
Als Folge, was ich bei der Verwendung von PostSharp lief, war, dass ich das benutzerdefinierte Attribut nicht bekommen konnte, weil ich .NET-Framework-Klassen (Textfelder usw.) auf einer Instanz-Ebene verzieren. Ich denke, ich werde wieder auf das gleiche Problem stoßen. Obwohl Sie eine gute Antwort auf die ursprüngliche Frage gegeben haben, führt eine Antwort oft zu zwei weiteren Fragen ... = D – grefly