PRE Ich verwende SQLExpress, um Informationen zu speichern.Wie kann ich eine aktuell angemeldete Benutzersicherheit überprüfen, damit ich Funktionen deaktivieren kann?
Ich habe eine sehr einfache Benutzer-Setup in meiner App. Ich habe eine Login-Tabelle, die nur drei Felder enthält, das sind Benutzername, Passwort und Sicherheitsstufe. Es gibt nur drei Sicherheitsstufen; Hoch, Mittel und Niedrig.
Auf meinem Login-Formular habe ich den folgenden Code, um den Benutzer zu speichern, der sich in einem Settings.Default[]
anmeldet, damit ich es später lesen kann.
private void Loginbtn_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=MySupportHub;Integrated Security=True");
SqlDataAdapter sda = new SqlDataAdapter(@"SELECT * FROM [dbo].[Login] Where Username='" + usernameTextBox.Text + "' and Password='" + passwordTextBox.Text + "'", con);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows.Count == 1)
{
Settings.Default["CurrentUserName"] = usernameTextBox.Text;
Settings.Default.Save();
this.Hide();
Home home = new Home();
home.Show();
}
else
{
MessageBox.Show("Invalid Username and/or Password..!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Clearbtn_Click(sender, e);
}
}
dann auf der Homepage habe ich den folgenden Code, um den Wert zu erhalten und den aktuellen Benutzers in der unteren Statusleiste protokolliert anzuzeigen. Beim Laden der Seite.
//Identify and display current logged in user
CurrentUser.Caption = Settings.Default["CurrentUserName"].ToString();
Was würde ich jetzt in der Lage sein mag zu tun ist, um den Strom in den Benutzern Sicherheitsstufe angemeldet überprüfen (User-Wert gespeichert hier „CurrentUser.Caption
“ auf dem Hauptformular würde) und in der Lage sein, Funktionen zu deaktivieren, wie eine Erstellung neuer Benutzer usw.
Also müsste ich in der Lage sein, den CurrentUser.Caption
Wert zu lesen, überprüfen Sie das gegen die (SQL Express) [dbo]. [Login] Tabelle und finden Sie die Sicherheitsstufe des Benutzers und begrenzen Sie Funktionen basierend auf dem Ergebnis .
Jede Hilfe wäre willkommen.
Dank
Phil
Sie wissen, wie Sie den Wert von der Datentabelle 'dt' abrufen können? Wenn ja, sollten Sie den Wert von "SecurityLevel" aus der Tabelle abrufen und in den Standardeinstellungen speichern und dort verwenden, wo Sie möchten. –
Ich fürchte, ich lerne immer noch. Ich wollte versuchen, den Sicherheitswert bei der Anmeldung anstelle des Hauptformulars zu ziehen und es in der Statusleiste neben dem Benutzernamen anzuzeigen und dann darauf zu konditionieren. Aber ich glaube, ich überlege mir, welchen Code ich brauche, um diese Informationen aus der Datenbank für diesen bestimmten Benutzer abzurufen. Kann ich den Login-Tastencode ändern, um diesen Wert zu ziehen? und setze es als Standardeinstellung? –
Ja ... Sie können das tun. –