Что такое WPF?
Windows Presentation Foundation — один из компонентов ядра .NET Framework, который позволяет разработчикам создавать богатые, различные Windows приложения.
Как сделать Авторизацию в WPF приложении?
Для того чтобы разработать систему «Авторизации и регистрации» в приложении WPF, для начала нужно, создать страницы, на которых будет происходить регистрация и авторизация. Создаётся начальное окно, через которое происходит общение между всеми страницами.
На данном окне нет ничего, кроме компонента «Frame», который был добавлен из «Панели элементов» и имеет следующие свойства: имя компонента – frame, ширина и высота компонента растянута на всю ширину и высоту окна.
«Frame» позволяет открывать страницы, в области которую он занимает. Теперь перейдём к коду данного окна.
Здесь используются две сторонние функции, разработка которых указана в пунктах «Подключение к базе данных» и «Открытие страниц».
Создание страницы «Авторизация»
Данная страница имеет:
- два компонента «Label» (текст). Данные поля нужны для отображения надписей на рабочей форме, в данном случае «Введите логин» и «Введите пароль»;
- компонент «TextBox» (поле ввода текста) с наименованием «textBox_login». Позволяет вносить текст в специальное поле ввода, необходим для указания логина пользователя;
- компонент «PasswordBox» (поле ввода текста скрывающие введённый текст) с наименованием «password». Данное поле, позволяет вносить текст в специальное поле для ввода, скрывая введённый текст специальным символом;
- два компонента «Button» (кнопки) с прикреплёнными функциями. Компонент типа «Button» предназначены для создания кнопок на форме, которые в свою очередь способны обрабатывать большое количество событий.
При создании страницы будет сгенерирован следующий код:
Здесь представлены две функции, и переменная, которая содержит ссылку на первоначальную форму. В функции входа (при нажатии на кнопку «Войти») пропишем алгоритм авторизации:
// функция входа
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("Введите логин"); // выводим ошибку
}
Алгоритм имеет следующий порядок действий:
- выполняется проверка заполняемости всех полей;
- выполняется проверка существование записи в БД;
- если запись существует, пользователь авторизуется, будет выведено всплывающее окно.
Для функции, которая открывает страницу регистрации, прописывается следующий код:
// функция открытия регистрации
private void regin_Click(object sender, RoutedEventArgs e) { mainWindow.OpenPage(MainWindow.pages.regin);
}
На этом код для страницы «Авторизация» завершён.
Как сделать Регистрацию в WPF приложении?
Рассмотрим создание страницы «Регистрация».
Здесь используются:
- три компонента «Label» (тест);
- компонент «TextBox» (поле для ввода текста) с наименованием «textBox_login»;
- два компонента «PasswordBox» (поле для ввода пароля) с наименованием «password» и «password_Copy»
- два компонента «Button» (кнопка) с прикреплёнными на них функциями.
Код страницы «Регистрация»
В функции возвращения при нажатии кнопки «Отмена», прописывается следующий код:
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 приложении.
Автор статьи: Александр Каримов.