| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using Npgsql;
- using System;
- using System.Data;
- using System.Windows;
- using WpfApp1.Helpers;
- namespace WpfApp1
- {
- public partial class LoginWindow : Window
- {
- private const string Conn = "Host=80.250.189.52;Port=5432;Database=dbwork;Username=kotov_aa;Password=0$s%MB3&F6#";
- public LoginWindow()
- {
- InitializeComponent();
- }
- private void BtnLogin_Click(object sender, RoutedEventArgs e)
- {
- string login = txtLogin.Text.Trim();
- string pass = txtPassword.Password;
- if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(pass))
- {
- lblError.Text = "Заполните все поля";
- return;
- }
- try
- {
- string sql = "SELECT id, username, role, password_hash FROM Users WHERE username = @login";
- using var conn = new NpgsqlConnection(Conn);
- conn.Open();
- using var cmd = new NpgsqlCommand(sql, conn);
- cmd.Parameters.AddWithValue("@login", login);
- DataTable dt = new DataTable();
- new NpgsqlDataAdapter(cmd).Fill(dt);
- if (dt.Rows.Count == 0)
- {
- lblError.Text = "Пользователь не найден";
- return;
- }
- DataRow row = dt.Rows[0];
- string storedHash = row["password_hash"].ToString();
- if (PasswordHelper.VerifyPassword(pass, storedHash))
- {
- AppSession.UserId = Convert.ToInt32(row["id"]);
- AppSession.Username = row["username"].ToString();
- AppSession.Role = row["role"].ToString();
- MainWindow mainWindow = new MainWindow();
- mainWindow.Show();
- this.Close();
- }
- else
- {
- lblError.Text = "Неверный пароль";
- }
- }
- catch (Exception ex)
- {
- lblError.Text = "Ошибка: " + ex.Message;
- }
- }
- }
- }
|