123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- 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;
- namespace WindowsFormsApp3
- {
- public partial class Form1 : Form
- {
- int a = 0;
- int i = 10;
- ЛяховEntities db = new ЛяховEntities();
- private string text = String.Empty;
- private Bitmap CreateImage(int Width, int Height)
- {
- Random rnd = new Random();
- //Создадим изображение
- Bitmap result = new Bitmap(Width, Height);
- //Вычислим позицию текста
- int Xpos = rnd.Next(0, Width - 50);
- int Ypos = rnd.Next(15, Height - 15);
- //Добавим различные цвета
- Brush[] colors = { Brushes.Black,
- Brushes.Red,
- Brushes.RoyalBlue,
- Brushes.Green };
- //Укажем где рисовать
- Graphics g = Graphics.FromImage((Image)result);
- //Пусть фон картинки будет серым
- g.Clear(Color.Gray);
- //Сгенерируем текст
- text = String.Empty;
- string ALF = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
- for (int i = 0; i < 5; ++i)
- text += ALF[rnd.Next(ALF.Length)];
- //Нарисуем сгенирируемый текст
- g.DrawString(text,
- new Font("Arial", 15),
- colors[rnd.Next(colors.Length)],
- new PointF(Xpos, Ypos));
- //Добавим немного помех
- /////Линии из углов
- g.DrawLine(Pens.Black,
- new Point(0, 0),
- new Point(Width - 1, Height - 1));
- g.DrawLine(Pens.Black,
- new Point(0, Height - 1),
- new Point(Width - 1, 0));
- ////Белые точки
- for (int i = 0; i < Width; ++i)
- for (int j = 0; j < Height; ++j)
- if (rnd.Next() % 20 == 0)
- result.SetPixel(i, j, Color.White);
- return result;
- }
- public Form1()
- {
- InitializeComponent();
- }
-
- private void Form1_Load(object sender, EventArgs e)
- {
- pictureBox1.Image = this.CreateImage(pictureBox1.Width, pictureBox1.Height);
- }
- private void button1_Click(object sender, EventArgs e)
- {
- if (string.IsNullOrEmpty(textBox2.Text) || string.IsNullOrEmpty(textBox3.Text))
- {
- MessageBox.Show("Введите данные для входа");
- return;
- }
- var пользователь = db.Пользователи.AsNoTracking().FirstOrDefault(A => A.login == textBox2.Text && A.password == textBox3.Text);
- if (пользователь == null)
- MessageBox.Show("Ошибка авторизации");
- pictureBox1.Visible = true;
- pictureBox1.Image = this.CreateImage(pictureBox1.Width, pictureBox1.Height);
- button1.Visible = false;
- button2.Visible = true;
- textBox1.Visible = true;
- }
- private void button2_Click(object sender, EventArgs e)
- {
- if (textBox1.Text == this.text)
- {
- MessageBox.Show("Верно!");
- }
- else
- {
- MessageBox.Show("Ошибка!");
- a = a + 1;
- if (i == 10)
- {
- label3.Text = string.Format("Вы исчерпали лимит попыток, доступ к программе заблокирован на {0} секунд.", i);
- timer2.Tick += new EventHandler(timer2_Tick);
- timer2.Interval = 1000;
- timer2.Start();
- }
- else
- {
- return;
- }
- }
- }
- private void timer2_Tick(object sender, EventArgs e)
- {
- if (textBox1.Text == this.text)
- {
- MessageBox.Show("Верно!");
- }
- else
- {
-
- label3.Text = string.Format("Вы исчерпали лимит попыток, доступ к программе заблокирован на {0} секунд.", --i);
- }
-
- if (i == 0)
- {
- label3.Text = "";
- (sender as Timer).Stop();
- a = 0;
- i = 10;
- }
-
-
- }
-
- }
- }
-
-
-
-
|