Ich machte meine ersten Schritte in Richtung MEF vor ein paar Monaten und alles schien bis jetzt in Ordnung zu sein. Was ich tun möchte, ist MEF jetzt von meinen echten Anwendungen zu verwenden und zu laden oder wir können UI-Komponenten anzeigen, die auf authentifizierten Benutzerberechtigungen basieren. Ich entwickle Patientenmanagementsystem für die Klinik und möchte ein Szenario implementieren, in dem MEF-basierte UI-Komponenten basierend auf dem Benutzertyp angezeigt werden. Wenn zum Beispiel ein authentifizierter Benutzer Arzt ist, möchte ich bestimmte Komponenten anzeigen und andere ausblenden.
Was ich versuche zu erreichen, ist etwas wie
ISystemComponent
mit einigen Eigenschaften und Methoden, so dass die Verwaltung jede Benutzerzugriffsebene steuern kann und basierend auf DB-Datensätzen werden vom Endbenutzer erstellte MEF-Steuerelemente angezeigt. Ich denke auch daran, beim Export von Komponenten die MetaData-Schnittstelle zu verwenden. Wie kann ich das gewünschte Ergebnis erzielen?
Jede richtige Richtung wird geschätzt
Ich habe dies getan, indem ich ein Metadaten-Attribut für eine Modul-ID und eine Tabelle mit den Berechtigungen verwendet habe.
Führen Sie eine ImportMany auf der Schnittstelle durch, filtern Sie sie dann anhand des Metadatenattributs mithilfe von Reflektion und vergleichen Sie sie mit den Berechtigungen in der Tabelle.
Dieser Blogbeitrag beschreibt alle involvierten MEF.
Andere Links ..
MEF-Plugins mit Sicherheits- und Profileffektivität
MEF mit ImportMany und ExportMetadata
Dies zeigt, wie Sie von xaml importieren
Der Artikel hier enthält Einzelheiten über AOP, um Sicherheitsbedenken in MEF einzubringen. Dies könnte eine Möglichkeit sein, dies zu tun - ich habe nichts in MEF gefunden, das diese Art von Funktionalität anderswo erlauben würde.
Ich denke, PRISM kann genau das tun, was Sie beschrieben haben. Werfen Sie einen Blick auf diesen Code Project-Artikel . Sie können mehrere Modulkataloge (je nach Benutzerberechtigungen) erstellen und den Katalog dynamisch aus XML laden, wie in Hier :
%Vor%Ich habe dies in WPF / MVVM unter Verwendung von Cinch und Backend-SQL-Tabellen implementiert, die Steuerelemente Rollen und Berechtigungen anzeigen Auf diese Weise können Sie Berechtigungen über das Ansichtsmodell steuern und die Sichtbarkeit an jedem beliebigen Punkt ändern.
Cinch hilft mit einigen der Plackerei von MVVM, während Sie MEF durch MeffedMVVM oder Prism.
Tags und Links c# authentication user-controls mef