2010-12-19 9 views
0

Ich schreibe eine App mit Client - Server - Modell. Wenn der Client gestartet wird, wird das Anmeldeformular mit dem Benutzernamen und dem Passwortfeld angezeigt. Wenn auf die Schaltfläche Anmelden geklickt wird, sendet der Client diesen Benutzernamen & pw an den Server zur Überprüfung. Wenn der Server in Ordnung ist, wird das Client-Hauptformular angezeigt. mein Code wie folgt aus:C# show/hide button bei admin/user login

Bei Client loginForm.cs:

if (execmd == "OK") // server sends "OK" or "FAILED" after checking authentication 
    this.DialogResult = DialogResult.OK 

Bei Client Program.cs:

login = new loginForm(); 
DialogResult result = login.showDialog(); 
login.Dispose(); 
if (result != DialogResult.Cancel) 
    Application.Run(new MainForm(login)); 

Jetzt möchte ich meine App verbessern, mit Admin/Benutzer-Authentifizierung. In MainForm gibt es einen Einstellknopf. Wenn sich Benutzer anmelden, wird diese Schaltfläche ausgeblendet. Wenn sich der Administrator anmeldet, wird diese Schaltfläche angezeigt. Mit dem obigen Code, wie mache ich die MainForm Show() oder Hide() die Schaltfläche in Abhängigkeit davon, was String-Server nach Überprüfung der Authentifizierung senden wird (zum Beispiel execmd == "admin" wenn Admin sich anmeldet).

Vielen Dank im Voraus für Ihre Hilfe.

Antwort

1

Behalten Sie Ihre vorhandene Logik in loginForm bei, fügen Sie jedoch einen Test hinzu, um festzustellen, ob der Benutzer der Administrator ist. Setzen Sie dann in loginForm einen booleschen Wert, der angibt, ob es sich um den Administrator handelt (etwa IsAdmin).

Sie übergeben die loginForm bereits an Ihre MainForm, damit Ihre MainForm die IsAdmin-Eigenschaft überprüfen kann, um festzustellen, ob die Schaltfläche angezeigt werden soll.

btnSetting.Visible = login.IsAdmin; 
+0

ja es funktioniert. Vielen Dank, Jonathan. – PeteMerry