using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Diplom_O.DataBase; using System.Security.Cryptography; namespace Diplom_O { public partial class LoginForm : Form { public bool isCanceled = false; public LoginForm() { InitializeComponent(); try { loginBox.Items.Clear(); var userList = FuncDB.UserList(); foreach (var usr in userList) loginBox.Items.Add(usr.Login); if (loginBox.Items.Count > 0) loginBox.SelectedIndex = 0; } catch (Exception e) { this.ShowError(errorLabel, e.Message); workButton.Enabled = false; } } private void workButton_Click(object sender, EventArgs e) { try { var _user = FuncDB.UserGetByLogin((string)loginBox.Text); if (_user == null) throw new Exception("Пользователя не существует."); if (_user.Pass != textBox1.Text) throw new Exception("Не верный пароль."); byte[] pass_bytes = Encoding.ASCII.GetBytes(textBox1.Text); var pass_hash_bytes = new MD5CryptoServiceProvider().ComputeHash(pass_bytes); _user.Pass = Encoding.ASCII.GetString(pass_hash_bytes); this.SetUser(_user); this.SetNextForm(_user.Default); this.Close(); } catch (Exception ex) { this.ShowError(errorLabel, ex.Message); } } private void canceledButton_Click(object sender, EventArgs e) { isCanceled = true; this.Close(); } } }