Просмотр содержимого документа
«Управление и автоматизация БД Практическая работа №18»
Практическое занятие № 18
Тема: Создание функции авторизации
Цель работы: разработать и реализовать функцию авторизации пользователей в приложении, обеспечивающую безопасный и надежный доступ к защищенным ресурсам.
Приобретаемые умения и навыки: навыки разработки архитектуры системы авторизации, выбор подходящих алгоритмов и технологий.
Норма времени: 2 часа.
Оборудование: компьютер с установленным программным обеспечением и подключенный к Internet.
Методические указания к практической работе:
Добавьте новую страницу LoginPage в папку Pages, сверстайте макет.
Измените первоначальную страницу фрейма в MainWindow на LoginPage
Прежде чем идти дальше, нам необходимо немного поменять структуру нашей базы данных. Будут добавлены таблицы User (первичный ключ - Login) и Role (первичный ключ – Id, автоинкремент).
По данным из этих таблиц мы будем распознавать пользователей и, в зависимости от их роли, предоставлять полный или урезанный функционал.
Затем необходимо обновить модель базы данных в нашем проекте. Откройте CarServiceModel двойным кликом в проекте.
Откроется примерно такое окно.
Нажмите ПКМ по свободному месту внутри окна. Выберите пункт Select All, чтобы выбрать все классы модели. Затем нажмите клавишу Delte, чтобы удалить их все.
Теперь можно приступать к обновлению модели. ПКМ в свободном месте окна, Update Model from Database…
Выберите все таблицы, затем нажмите Finish
Сохраните все изенения в проекте.
В файл App.cs добавьте ещё одно свойство для хранения авторизованного пользователя
По клику на кнопку авторизации пропишите логику входа и запись пользователя в App.CurrentUser (окно LoginPage)
В окне ServicesPage пропишите новое условие для видимости кнопки добавления.
Видимость кнопок в списке придётся настраивать немного иным способом (так как мы не имеем к ним прямого доступа).
В классе ServicePartial (класс который мы создавали, для выявления скидки) можно добавить ещё одно свойство для определения видимости кнопок.
Осталось только привязать их видимость в верстке (в ServicesPage).
Войдите под разными ролями и проверьте доступность/не доступность функционала добавления/редактирования/удаления.
Контрольные вопросы:
1. Опишите процесс авторизации пользователя.
2. Как можно обеспечить целостность данных пользователей?