• Главная
  • Форма обратной связи
Твои руки
Инструкции, подсказки, самоделки
 

Меню

Skip to content
  • Главная
  • Форма обратной связи

Категории

  • Android
  • Без рубрики
  • Заработок
  • Игры
    • PUBG
  • Лайфхаки
  • Не самое нужное
    • Готовка
      • Каши
    • Домашние животные
      • Кошки
  • Одежда
    • Мужская одежда
  • Соцсети
    • instagram
    • Вконтакте
  • Удобства
  • Хобби
    • WPF Программы
    • Боты
    • Велосипеды
    • Гитара
    • Графика
      • Blender
    • Плетение
    • Программирование игр
    • Программирование сайтов
    • Сайты
    • Фотография
  • Электроника
Powered by Verbosa & WordPress.

WPF - система "Авторизации и Регистрации"

Александр Каримов 31.08.2018 WPF Программы / Хобби

Что такое WPF?

Windows Presentation Foundation — один из компонентов ядра .NET Framework, который позволяет разработчикам создавать богатые, различные Windows приложения.

Как сделать Авторизацию в WPF приложении?

Для того чтобы разработать систему «Авторизации и регистрации» в приложении WPF, для начала нужно, создать страницы, на которых будет происходить регистрация и авторизация. Создаётся начальное окно, через которое происходит общение между всеми страницами.

WPF - Главное окно

На данном окне нет ничего, кроме компонента «Frame», который был добавлен из «Панели элементов» и имеет следующие свойства: имя компонента – frame, ширина и высота компонента растянута на всю ширину и высоту окна.

«Frame» позволяет открывать страницы, в области которую он занимает. Теперь перейдём к коду данного окна.

WPF - Код главной страницы

Здесь используются две сторонние функции, разработка которых указана в пунктах «Подключение к базе данных» и «Открытие страниц».

Создание страницы «Авторизация»

WPF - Страница авторизации

Данная страница имеет:

  • два компонента «Label» (текст). Данные поля нужны для отображения надписей на рабочей форме, в данном случае «Введите логин» и «Введите пароль»;
  • компонент «TextBox» (поле ввода текста) с наименованием «textBox_login». Позволяет вносить текст в специальное поле ввода, необходим для указания логина пользователя;
  • компонент «PasswordBox» (поле ввода текста скрывающие введённый текст) с наименованием «password». Данное поле, позволяет вносить текст в специальное поле для ввода, скрывая введённый текст специальным символом;
  • два компонента «Button» (кнопки) с прикреплёнными функциями. Компонент типа «Button» предназначены для создания кнопок на форме, которые в свою очередь способны обрабатывать большое количество событий.

При создании страницы будет сгенерирован следующий код:

WPF - Код авторизации

Здесь представлены две функции, и переменная, которая содержит ссылку на первоначальную форму. В функции входа (при нажатии на кнопку «Войти») пропишем алгоритм авторизации:

// функция входа 
private void enter_Click(object sender, RoutedEventArgs e)
{
    if (textBox_login.Text.Length > 0) // проверяем введён ли логин     
    {
        if (password.Password.Length > 0) // проверяем введён ли пароль         
        {             // ищем в базе данных пользователя с такими данными         
            DataTable dt_user = mainWindow.Select("SELECT * FROM [dbo].[users] WHERE [login] = '" + textBox_login.Text + "' AND [password] = '" + password.Password + "'");
            if (dt_user.Rows.Count > 0) // если такая запись существует       
            {
                MessageBox.Show("Пользователь авторизовался"); // говорим, что авторизовался         
            } else MessageBox.Show("Пользователя не найден"); // выводим ошибку  
        } else MessageBox.Show("Введите пароль"); // выводим ошибку    
    } else MessageBox.Show("Введите логин"); // выводим ошибку 
}

Алгоритм имеет следующий порядок действий:

  • выполняется проверка заполняемости всех полей;
  • выполняется проверка существование записи в БД;
  • если запись существует, пользователь авторизуется, будет выведено всплывающее окно.
WPF - Проверка авторизации

Для функции, которая открывает страницу регистрации, прописывается следующий код:

// функция открытия регистрации 
private void regin_Click(object sender, RoutedEventArgs e) {     mainWindow.OpenPage(MainWindow.pages.regin); 
}

На этом код для страницы «Авторизация» завершён.

Как сделать Регистрацию в WPF приложении?

Рассмотрим создание страницы «Регистрация».

WPF - Страница регистрации

Здесь используются:

  • три компонента «Label» (тест);
  • компонент «TextBox» (поле для ввода текста) с наименованием «textBox_login»;
  • два компонента «PasswordBox» (поле для ввода пароля) с наименованием «password» и «password_Copy»
  • два компонента «Button» (кнопка) с прикреплёнными на них функциями.

Код страницы «Регистрация»

WPF - Код регистрации

В функции возвращения при нажатии кнопки «Отмена», прописывается следующий код:

mainWindow.OpenPage(MainWindow.pages.login);

В коде функции, которая вызывается при регистрации сначала выполняется проверка на заполняемость полей.

if (textBox_login.Text.Length >; 0) // проверяем логин
{
	if (password.Password.Length >; 0) // проверяем пароль
	{
		if (password_Copy.Password.Length >; 0) // проверяем второй пароль
		{


		}else MessageBox.Show("Повторите пароль");
	}else MessageBox.Show("Укажите пароль");
}else MessageBox.Show("Укажите логин");

Далее проверка, на соответствие логина следующей форме записи:

string[] dataLogin = textBox_login.Text.Split('@'); // делим строку на две части
if (dataLogin.Length == 2) // проверяем если у нас две части
{
	string[] data2Login = dataLogin[1].Split('.'); // делим вторую часть ещё на две части
	if (data2Login.Length == 2)
	{

	}else MessageBox.Show("Укажите логин в форме х@x.x");
}else MessageBox.Show("Укажите логин в форме х@x.x");

Также стоит проверить, соответствует ли пароль заданным требованиям:

  • должно быть 6 или более символов;
  • допускается только английская раскладка;
  • должен присутствовать один из следующих символов: «_», «-», «!»
  • должна быть цифра.

Этим проверкам соответствует код:

if (password.Password.Length >;= 6)
{
	bool en = true; // английская раскладка
	bool symbol = false; // символ
	bool number = false; // цифра

	for(int i=0; i<password.Password.Length; i ++) // перебираем символы
	{
		if (password.Password[i] >;= 'А' && password.Password[i] <= 'Я') en = false; // если русская раскладка
		if (password.Password[i] >;= '0' && password.Password[i] <= '9') number = true; // если цифры
		if (password.Password[i] == '_' || password.Password[i] == '-' || password.Password[i] == '!') symbol = true; // если символ
	}

	if (!en) 
		MessageBox.Show("Доступна только английская раскладка"); // выводим сообщение
	else if (!symbol) 
		MessageBox.Show("Добавьте один из следующих символов: _ - !"); // выводим сообщение
	else if (!number) 
		MessageBox.Show("Добавьте хотя бы одну цифру"); // выводим сообщение
	if(en && symbol && number) // проверяем соответствие
	{
	}
}else MessageBox.Show("пароль слишком короткий, минимум 6 символов");

Проверка на совпадение паролей:

if (password.Password == password_Copy.Password) // проверка на совпадение паролей
{
    MessageBox.Show("Пользователь зарегистрирован");
}else MessageBox.Show("Пароли не совподают");

При успешном выполнении вышеперечисленных пунктов, можно запустить приложение, где в качестве тестовых данных используются два пароля: qwerty123 (Рисунок 8) и qwerty_123 (Рисунок 9).

WPF - Проблемы с паролем
WPF - Пароль принят

После этого, необходимо занести запись в базу данных, которая описана в пункте «Выполнение запросов» .

Таким образом можно реализовать систему "Авторизации и регистрации" в WPF приложении.

Автор статьи: Александр Каримов.

2.91/5 (56)

Оцените

 Login / Microsoft / MSSQL / Regin / SQL / Windows / Windows Forms / WPF / Авотризация / Регистрация
Предыдущий постWPF - выполнение запросов к базе данных MS SQL Server
Следующий постWPF экспорт данных из приложения в файл
pixel