FormAuthorization.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using PasswordCheckDll;
  11. namespace СУБД_Швейная_фабрика
  12. {
  13. public partial class FormAuthorization : Form
  14. {
  15. public FormAuthorization()
  16. {
  17. InitializeComponent();
  18. }
  19. public static string TxtCon = @"Data Source=213.155.192.79,3002;Initial Catalog=dbFabrikaOAA;Persist Security Info=True;User ID=u21obolen;Password=s8kd";
  20. string GetCapcha()
  21. {
  22. string TxtLetter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  23. string TxtDigit = "0123456789";
  24. string t1 = TxtLetter + TxtDigit;
  25. string capcha = "";
  26. bool FlagDigit = false;
  27. Random rnd = new Random();
  28. for (int i = 1; i <= 3; i++)
  29. {
  30. char sim = t1[rnd.Next(t1.Length)];
  31. if (char.IsDigit(sim)) FlagDigit = true;
  32. capcha += sim;
  33. }
  34. if (FlagDigit == false)
  35. capcha += TxtDigit[rnd.Next(TxtDigit.Length)];
  36. else
  37. capcha += TxtLetter[rnd.Next(TxtLetter.Length)];
  38. return capcha;
  39. }
  40. private void FormAuthorization_Load(object sender, EventArgs e)
  41. {
  42. // TODO: This line of code loads data into the 'db_22factoryDataSet1.Users' table. You can move, or remove it, as needed.
  43. this.usersTableAdapter.Fill(this.pracFabricaDataSet.Users);
  44. CmbRole.SelectedIndex = 0;
  45. LblCapcha.Text = GetCapcha();
  46. }
  47. private void BtnLogin_Click(object sender, EventArgs e)
  48. {
  49. if (TbxCapcha.Text.ToUpper() != LblCapcha.Text)
  50. {
  51. MessageBox.Show("Символы капчи введены неверно!\nПопробуйте еще раз.");
  52. LblCapcha.Text = GetCapcha();
  53. TbxCapcha.Clear();
  54. return;
  55. }
  56. string role = CmbRole.SelectedItem.ToString();
  57. if (role == "Заказчик")
  58. role = 1.ToString();
  59. if (role == "Менеджер")
  60. role = 2.ToString();
  61. if (role == "Кладовщик")
  62. role = 3.ToString();
  63. string TxtFilter = String.Format("login = '{0}' and pass = '{1}' and Role = {2}", TbxLogin.Text, TbxPass.Text, role);
  64. string TxtFilterForUser = string.Format("login = '{0}'", TbxLogin.Text);
  65. BsUsers.Filter = TxtFilter;
  66. if (BsUsers.Count == 0)
  67. {
  68. MessageBox.Show(String.Format("Нет пользователя '{0}' с указанным логином и паролем!", role));
  69. return;
  70. }
  71. TbxLogin.Clear();
  72. TbxPass.Clear();
  73. this.Visible = false;
  74. if (role == "1")
  75. {
  76. FormZakazchik frm = new FormZakazchik();
  77. frm.LblIdUser.Text = ((DataRowView)BsUsers.Current)["id_User"].ToString();
  78. frm.BsUsers.Filter = TxtFilterForUser;
  79. frm.ShowDialog();
  80. }
  81. if (role == "2")
  82. {
  83. FormManager frm = new FormManager();
  84. frm.BsUsers.Filter = TxtFilterForUser;
  85. frm.ShowDialog();
  86. }
  87. if (role == "3")
  88. {
  89. FormKladovschik frm = new FormKladovschik();
  90. frm.BsUsers.Filter = TxtFilterForUser;
  91. frm.ShowDialog();
  92. }
  93. this.Visible = true;
  94. this.usersTableAdapter.Fill(this.pracFabricaDataSet.Users);
  95. TbxLogin.Focus();
  96. TbxCapcha.Clear();
  97. LblCapcha.Text = GetCapcha();
  98. }
  99. private void CbxShowPass_CheckedChanged(object sender, EventArgs e)
  100. {
  101. TbxPass.UseSystemPasswordChar = !TbxPass.UseSystemPasswordChar;
  102. }
  103. private void LblCapcha_Paint(object sender, PaintEventArgs e)
  104. {
  105. Color[] colors = { Color.Green, Color.Black, Color.Yellow, Color.White };
  106. Random rnd = new Random();
  107. for (int i = 1; i <= rnd.Next(5, 11); i++)
  108. {
  109. int x1 = rnd.Next(LblCapcha.Width);
  110. int y1 = rnd.Next(LblCapcha.Height);
  111. int x2 = rnd.Next(LblCapcha.Width);
  112. int y2 = rnd.Next(LblCapcha.Height);
  113. Color col = colors[rnd.Next(colors.Length)];
  114. e.Graphics.DrawLine(new Pen(col), x1, y1, x2, y2);
  115. }
  116. }
  117. private void LblReg_Click(object sender, EventArgs e)
  118. {
  119. FormReg frm = new FormReg();
  120. if (frm.ShowDialog() == DialogResult.OK)
  121. this.usersTableAdapter.Fill(this.pracFabricaDataSet.Users);
  122. }
  123. }
  124. }