Benutzergruppen für Applikation

ronaldo84

Erfahrenes Mitglied
Hallo,

ich habe eine Winform-Application, bei der man die Benutzer in einer oder mehrere Gruppen einteilen kann (zB. Administrator, Grafiker, Sachbearbeiter etc.). Diese Gruppen haben nun, je nach Einstellungen, verschiedene Zugriffsrechte. So soll zB. bei dem Sachbearbeiter zB ein TabPage mit einer PictureBox nicht angezeigt werden oder bestimmte Buttons oder Textfelder ausgeblendet bzw. deaktiviert/readonly sein. Eine Tabellenstruktur in der man die Benutzer und die Rechte speichern kann habe ich bereits. Nur fehlt mir jetzt noch die Idee wie ich die Steuerelemente dynamisch zur Laufzeit ausblenden kann, die der angemeldete Nutzer nicht sehen kann/darf/soll. Nun wollte ich mal fragen ob da jemand eine Idee hat (keinen fertigen Code sondern nur Vorschläge, Tutorials etc). Ich hatte mir überlegt ich gehe einfach über den ControlAdded-Event der Hauptform. Lese den Namen des Controls aus und frage dann ab ob der aktuelle Benutzer das Control sehen darf. Nachteil: Habe ich ein Panel oder ein anders Containerelement, wird das Control nicht zur Form sondern zum Panel hinzugefügt. Ausserdem hätte ich da bei mehreren Formen auch wieder verschiedene Events. Gibt es vielleicht ein Apllication-Event mit dem man das realisieren kann? Würde wirklich gerne mal wissen wir andere das so umsetzen würden, und daraus Ideen ziehen etc.

Vielen Dank

ronaldo

€: Ich arbeite mit VS 2005
 
du kannst den code der InitializeComponent() funktion auch direkt in den konstruktor der form schreiben, und dort entsprechend auswählen, nachtteil ist, der form designer geht dann nicht mehr, aber dafür kannst eine zweite form anlegen, und dann copy und pasten...

Code:
        public Form1()
        {
                InitializeComponent();
        }

nach

Code:
        public Form1()
        {
               if ([isadmin bedingung]) {
                             // ... inhalt der InitializeComponent(); für den admin
              } else if ([isnormaluser bedingung]) {
                             // ... inhalt der InitializeComponent(); für den normalen user
              } else if ([usw]) {
                            // ...
              }
        }

und die deklarierten varibalen in der design.cs mit in die hauptklasse, das partital braucht man dann auch nicht mehr
 
Zurück