Я пытаюсь ввести имя пользователя в моей библиотеке приложения на основе пользователя.
Я уже выполнил приведенный ниже код, но что-то отсутствует / неверно.
Имейте в виду, что администратор должен иметь все разрешения в приложении.
- Я вхожу как администратор (имя администратора - 'jHarrington')
- Разрешения меню показывают правильно
- После навигации по подменю и возврата к главному меню, я выгляжу так, как будто я (пользователь-администратор) теряю разрешения (в частности, разрешение в меню пользователя), т.е. я получаю те же разрешения, что и обычный пользователь (у которого есть имя пользователя) 'pDinklage'), где пользовательское меню отключено (выделено серым цветом)
Помощь будет принята с благодарностью.
Заранее спасибо.
PS. Я знаю о проблеме SQL-инъекций, я разберусь с этим.
Форма входа:
private void btnOk_Click(object sender, EventArgs e)
{
//Database Connection Setup
SqlConnection Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename = C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\Library System Project.mdf;Integrated Security=True;Connect Timeout=30;");
string query = "Select User_Username from Users where User_Username = '" + txtUsername.Text.Trim() + "' and User_Password = '" + txtPassword.Text.Trim() + "'";
SqlDataAdapter SDA = new SqlDataAdapter(query, Connection);
DataTable DT = new DataTable();
SDA.Fill(DT);
// Access to Main Menu for Authorized Users
if (DT.Rows.Count == 1)
{
MainMenuForm MainMenu = new MainMenuForm();
MainMenu.SetRole(DT.Rows[0][0].ToString());
MainMenu.Show();
this.Hide();
}
// Show Message Box of incorrect credentials submitted
else
{
MessageBox.Show("Invalid login credentials. Please try again.");
}
}
Форма главного меню:
public partial class MainMenuForm : Form
{
public MainMenuForm()
{
InitializeComponent();
}
public void SetRole(string Role)
{
lblRole.Text = Role;
}
private void MainMenuForm_Load(object sender, EventArgs e)
{
if (((Form)this).Controls["lblRole"].Text == "jHarrington")
{
btnUserMenu.Enabled = true;
}
}