Авторизация.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. namespace Демо
  12. {
  13. public partial class Авторизация : Form
  14. {
  15. int i = 0;
  16. string text;
  17. public Авторизация()
  18. {
  19. InitializeComponent();
  20. KapchVod.Visible = false;
  21. Capch.Visible = false;
  22. }
  23. private Bitmap CreateImage(int Width, int Height)
  24. {
  25. Random rnd = new Random();
  26. //Создадим изображение
  27. Bitmap result = new Bitmap(Width, Height);
  28. //Добавим различные углы поворота текста
  29. Int16[] rotate = { 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6 };
  30. //Укажем где рисовать
  31. Graphics g = Graphics.FromImage((Image)result);
  32. //Пусть фон картинки будет серым
  33. g.Clear(Color.Gray);
  34. //Делаем случайный угол поворота текста
  35. g.RotateTransform(rnd.Next(rotate.Length));
  36. //Генерируем текст
  37. text = String.Empty;
  38. string ALF = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
  39. for (int i = 0; i < 5; ++i)
  40. text += ALF[rnd.Next(ALF.Length)];
  41. //Нарисуем сгенирируемый текст
  42. g.DrawString(text,
  43. new Font("Arial", 25, FontStyle.Bold),
  44. Brushes.Pink,
  45. new PointF(10, 10));
  46. //Добавим немного помех
  47. //Линии из углов
  48. g.DrawLine(Pens.Black,
  49. new Point(0, 0),
  50. new Point(Width - 1, Height - 1));
  51. g.DrawLine(Pens.Black,
  52. new Point(0, Height - 1),
  53. new Point(Width - 1, 0));
  54. //Белые точки
  55. for (int i = 0; i < Width; ++i)
  56. for (int j = 0; j < Height; ++j)
  57. if (rnd.Next() % 20 == 0)
  58. result.SetPixel(i, j, Color.White);
  59. return result;
  60. }
  61. private void roleBtn_Click(object sender, EventArgs e)
  62. {
  63. if (i == 0)
  64. {
  65. Capch.Visible = false;
  66. KapchVod.Visible = false;
  67. kodLab.Visible = true;
  68. kodText.Visible = true;
  69. roleBtn.Text = "Войти как клиент";
  70. i++;
  71. }
  72. else
  73. {
  74. Capch.Visible = false;
  75. KapchVod.Visible = false;
  76. kodText.Visible = false;
  77. kodLab.Visible = false;
  78. roleBtn.Text = "Войти как администратор";
  79. i = 0;
  80. }
  81. }
  82. private void enterBtn_Click(object sender, EventArgs e)
  83. {
  84. SqlConnection cn;
  85. Program.conn(out cn);
  86. SqlCommand cmd = cn.CreateCommand();
  87. int ex = 0;
  88. if (i == 0)
  89. {
  90. cmd.CommandText = "select count(*) from Клиенты where Email = \'" + mailText.Text + "\'";
  91. ex = Convert.ToInt32(cmd.ExecuteScalar());
  92. if ((ex > 0) && (capcha.Checked == true) && (KapchVod.Text == this.text))
  93. {
  94. this.Close();
  95. Program.mainf = new Каталог();
  96. }
  97. else
  98. {
  99. roleBtn.Visible = false;
  100. pictureBox1.Image = this.CreateImage(pictureBox1.Width, pictureBox1.Height);
  101. KapchVod.Visible = true;
  102. Capch.Visible = true;
  103. kodText.Text = "";
  104. KapchVod.Text = "";
  105. }
  106. }
  107. else
  108. {
  109. cmd.CommandText = "select count(*) from Администраторы where Почта = \'" + mailText.Text + "\'";
  110. ex = Convert.ToInt32(cmd.ExecuteScalar());
  111. if ((ex > 0) && (kodText.Text.Equals("0000")) && ((capcha.Checked == true)) && (KapchVod.Text == this.text))
  112. {
  113. this.Close();
  114. Program.mainf = new Каталог();
  115. }
  116. else
  117. {
  118. roleBtn.Visible = false;
  119. pictureBox1.Image = this.CreateImage(pictureBox1.Width, pictureBox1.Height);
  120. KapchVod.Visible = true;
  121. Capch.Visible = true;
  122. kodText.Text = "";
  123. KapchVod.Text = "";
  124. }
  125. }
  126. }
  127. private void Авторизация_FormClosing(object sender, FormClosingEventArgs e)
  128. {
  129. Program.mainf = null;
  130. }
  131. }
  132. }