Задача 1: Обеспечение безопасности данных
Задание 1.Создать БД для обеспечения безопасности данных.
Запустите среду разработки «SQL Server Management Studio». Для этого в меню «Пуск» выберите пункт «Все приложения\Microsoft SQL Server \SQL Server Management Studio».
- После запуска среды разработки появится окно подключения к серверу Connect to Server».
- В этом окне необходимо нажать кнопку «Соединить» (Connect).
- После нажатия кнопки «Соединить» появится окно среды разработки «SQL Server Management Studio».
- В обозревателе объектов щелкните ПКМ на папке «Базы данных» и в появившемся меню выберите пункт «Создать базу данных».
- Появится окно настроек параметров файла данных новой БД «Создание базы данных». В левой части окна настроек имеется список «Выбор страницы». Этот список позволяет переключаться между группами настроек.
- Настроим основные настройки «Общие». Для выбора основных настроек нужно щелкнуть мышью по пункту «Общие» в списке «Выбор страницы».
- В верхней части окна расположено два параметра: «Имя БД» и «Владелец». Задайте параметр «Имя базы данных» равным «SecurityDB». Параметр «Владелец» нажмите кнопку с многоточием. В окне «Выбор владельца базы данных» нажмите кнопку «Обзор». В окне «Поиск объектов» выделите строку «NT AUTHORITY\система» и нажмите кнопку «ОК».
- Для принятия всех настроек и создание файла данных и журнала транзакций БД нажмите кнопку «ОК».
- Произойдет возврат в окно среды разработки «SQL Server Management Studio». На панели обозревателя объектов в папке «Базы данных» появится новая БД «SecurityDB».
Все таблицы БД находятся в подпапке «Таблицы» папки «SecurityDB» в окне обозревателя объектов.
Задание 2. Создайте таблицу «User_tbl» в базе данных «SecurityDB».
- Для этого щелкните ПКМ по папке «Таблицы» и в появившемся меню выберите пункт «Таблица…»
- Появится окно создания новой таблицы. В таблице определения полей задайте значения столбцов, как показано на рисунке.
- Так как, поле «ID» будет являться первичным полем связи в запросе, то следует сделать его числовым счетчиком. То есть данное поле должно автоматически заполняться числовыми значениями. Более того, оно должно быть ключевым.
- Сделайте поле «ID» счетчиком. Для этого выделите поле, просто щелкнув по нему мышкой в таблице определения полей. В таблице свойств поля отобразятся свойства поля «ID» Разверните группу свойств «Спецификация идентификатора». Свойство «(Идентификатор)» установите в значение «Да». Задайте свойства «Начальное значение идентификатора» и «Шаг приращения идентификатора» равными 1. Эти настройки показывают, что значение поля «ID» у первой записи в таблице будет равным 1, у второй - 2, у третьей 3 и т.д.
- Теперь сделайте поле «ID» ключевым полем. Выделите поле, а затем на панели инструментов нажмите кнопку с изображением ключа .
- На этом настройку таблицы «User_tbl»можно считать завершенной. Закройте окно создания новой таблицы, нажав кнопку закрытия в верхнем правом углу окна, над таблицей определения полей. Появиться окно с запросом о сохранении таблицы.
- В этом окне необходимо нажать «Да» Появиться «Выбор имени», предназначенное для определения имени новой таблицы. В этом окне задайте имя новой таблицы как «User_tbl» и нажмите кнопку «ОК»
- В окне «Обозревателя объектов» нажмите правой кнопкой мыши по ветви «Таблицы» и в меню выберите строку «Обновить», после этого созданная таблица появится в обозревателе объектов.
Задание 3. Заполните таблицу «User_tbl» начальными данными.
- Для заполнения таблицы «User_tbl» в обозревателе объектов щелкните правой кнопкой мыши по таблице «User_tbl» и в появившемся меню выберите пункт «Изменить первые 200 строк».
- В рабочей области «Microsoft SQL Server Management Studio» проявится окно заполнения таблиц. Заполните таблицу «User_tbl», как показано на рисунке. Даты последнего входа пользователей Admin и Me установите либо текущую дату компьютера, либо не менее месяца.
- Закройте окно заполнения таблицы «User_tbl» щелкнув по кнопке закрытия окна в верхнем правом углу, над таблицей.
Задание 4.Создайте проект в «Microsoft Visual Studio»
- Запустите «SQL Server Browser» (Обозреватель SQL серверов) сервис, обеспечивающий доступ сторонним приложениям к «Microsoft SQL Server». Для запуска данного сервиса необходимо запустить утилиту «SQL Server Configuration Manager» (Менеджер настроек SQL сервера), входящую в состав «Microsoft SQL Server». Для запуска данной утилиты в меню «Пуск» выберите пункт «Программы/Microsoft SQL Server 2012/Средства надстройки/ Диспетчер конфигурации SQL Server» как это представлено на рисунке.
Появится окно менеджера настроек SQL сервера имеющее следующий вид:
- В правой части окна менеджера настроек SQL сервера, в списке сервисов «Microsoft SQL Server» выделите сервис «Обозреватель SQL Server», затем на панели инструментов нажмите кнопку «Запустить службу» . После запуска вышеуказанного сервиса окно менеджера настроек SQL сервера можно закрыть.
ВНИМАНИЕ: Если кнопка запуска службы не активно, тогда следует в службах компьютера, найти службу «Обозреватель SQL Server» и настроить тип запуска «Вручную», после чего выполнить все выше перечисленные действия по запуску службы из «SQL Server Configuration Manager», предварительно закрыв и открыв данную утилиту.
- Запустите «Microsoft Visual Studio 2012», выбрав в меню «Пуск» пункт «Программы/Microsoft Visual Studio 2012/ Microsoft Visual Studio 2012».
- Появится окно со стартовой страницей «Microsoft Visual Studio 2012 (Начальная страница)».
- Для создания нового проекта на стартовой странице в области «Пуск» необходимо щелкнуть ЛКМ по ссылке «Создать проект…».
Появится окно выбора типа создаваемого проекта, и используемого языка программирования «Создать проект».
- В правой колонке типы проектов выберите «Visual C#\Windows», а в качестве шаблона проекта выберите «Приложение Windows Forms». В качестве имени проекта задайте «WSR_GIA_Ваша Фамилия», укажите путь сохранения проекта, в отдельную папку созданную для данного проекта и нажмите кнопку «ОК».
Задание 5.Подключите к проекту БД «SecurityDB».
- Для подключения БД к проекту в оконном меню среды разработки выберите пункт «Проект\Добавить новый источник данных…».
Появится окно мастера подключения к новому источнику данных Мастер настройки источника данных».
- Выберите вариант источника данных «База данных» и нажимаем кнопку «Далее». Появится окно выбора модели БД. Выберите «Набор данных» и нажмите на кнопку «Далее».
- На следующем шаге мастера появится окно выбора подключения к БД. В окне выбора подключения к БД, для создания нового подключения нажмите кнопку «Создать подключение…».
- Появится окно «Выбор источника данных», выделите строку «Microsoft SQL Server» и нажмите на кнопку «Продолжить».
- В окне «Добавить подключение» в выпадающем списке «Имя сервера» выберите имя сервера заданное при установке SQL сервера. В качестве логина и пароля для входа на сервер выберите «Использовать проверку подлинности Windows». В качестве БД для подключения из выпадающего списка «Выберите или введите имя БД» выберите БД «SecurityDB».
- Для проверки работоспособности создаваемого соединения нажмите кнопку «Проверить подключение». Появится сообщение «Проверка подключения выполнена», говорящее о том, что соединение работоспособно.
- Закройте окно сообщения и окно «Добавления подключения» нажав на кнопку «ОК». Просмотрите созданную строку подключения, щелкнув по знаку «+» в нижней части окна.
- Нажмите кнопку «Далее». Появится окно с запросом о сохранении строки подключения. Для сохранения строки подключения включите опцию «Да, сохранить подключение как:» и нажмите кнопку «Далее».
- Появится окно выбора объектов подключаемой БД. Выберите все объекты как это показано на рисунке и нажмите кнопку «Готово». Подключение завершено.
- В обозревателе решений появится ветвь подключения набора данных базы данных.
- Для просмотра источника данных отобразите панель «Источник данных», выполнив команду «Вид/Другие окна/Источники данных».
Задание 6. Создайте и настройте форму для входа в систему.
- Настройте свойства формы Form1. Выделите форму, щелкнув ЛКМ в пустом месте формы.
- На панели свойств задайте значения для свойств формы следующим образом:
Свойство | Значение свойства |
Name (Имя формы) | Authorization_frm |
StartPosition(Первоначальное положение формы) | CenterScreen |
Text (Текст надписи в заголовке формы) | Для входа введите логин и пароль |
- Поместите на форму два элемента Label, два элемента TextBox и один элемент Button с панели элементов (если панель не отображается, активируйте её в меню «Вид»-«Панель элементов»), в разделе «Стандартные элементы управления», как показано на рисунке.
- Настройте свойства элементов, значения которых представлены в таблице.
Элемент | Свойство | Значение свойства |
Label1 | Text (Текст надписи) | Логин |
Label2 | Пароль | |
TextBox1 | Name (Имя элемента для обращения к нему из кода программы) | |
TextBox2 | ||
Button1 | ||
Button1 | Text (Текст надписи) | Войти в приложение |
Label1 | Font (Шрифт) | Размер 14 пт |
Label2 | ||
TextBox1 | ||
TextBox2 | ||
Button1 | ||
TextBox2 | PasswordChar (символы срытия пароля при вводе) |
- Внешний вид формы представлен на рисунке.
Задание 7. Подключение таблицы базы данных с помощью создания класса «LINQ to SQL».
- Добавьте в решение класс «LINQ to SQL». Для этого откройте обозреватель решений, на проекте «WSR_GIA_Serkova» щелкните ПКМ, в контекстном меню выберите пункт «Добавить», а затем «Создать элемент».
- В открывшемся окне добавления элементов перейдите на вкладку «Данные» и выберите в списке элемент «Классы LINQ to SQL», задайте имя новому классу: Users.dbml как показано на рисунке ниже.
- Откройте созданный класс LINQ. Откройте обозреватель серверов, найдите в нем подключение нашей БД. Из папки «Таблицы» перетащите на рабочую область таблицу «User_tbl» расположите их как показано на рисунке ниже, Сохраните класс и закройте вкладку.
Задание 8. Создайте форму Администратора.
- Добавьте в решение форму. Для этого откройте обозреватель решений, на проекте «WSR_GIA_Serkova» щелкните ПКМ, в контекстном меню выберите пункт «Добавить», а затем «Форма Windows».
- В открывшемся окне добавления элементов задайте имя новой форме: «Admin_frm.cs» как показано на рисунке ниже.
- Настройте свойство «Text» формы «Admin_frm» в значение «Раздел администратора системы».
- Для корректного закрытия всего приложения, после закрытия окна «Admin_frm» создайте процедуру закрытия формы, выделив форму, переключитесь на список методов, в списке методов напротив метода «FormClosing» кликните два раза мышью в пустой строке соседнего столбца.
- Появится заготовка метод события «FormClosing» (Закрытие формы). Измените метод в соответствии с рисунком.
Задание 9. Создайте форму Пользователя.
- Добавьте в решение форму. Для этого откройте обозреватель решений, на проекте «WSR_GIA_Serkova» щелкните ПКМ, в контекстном меню выберите пункт «Добавить», а затем «Форма Windows».
- В открывшемся окне добавления элементов задайте имя новой форме: «Root_frm.cs».
- Настройте свойство «Text» формы «Root_frm» в значение «Раздел пользователя системы».
- Для корректного закрытия всего приложения, после закрытия окна «Root_frm» создайте процедуру закрытия формы, выделив форму, переключитесь на список методов, в списке методов напротив метода «FormClosing» кликните два раза мышью в пустой строке соседнего столбца.
- Появится заготовка метод события «FormClosing» (Закрытие формы). Измените метод в соответствии с рисунком.
Задание 10. При аутентификации связка «имя пользователя/пароль» должна совпадать с одной из записей в соответствующей таблице. В случае успешной аутентификации должен быть осуществлен вход в систему. Если аутентификация неуспешна должно появляться сообщение «Вы ввели неверный логин или пароль. Пожалуйста проверьте ещё раз введенные данные».
- Щелкните два раза ЛКМ по кнопке «Войти в приложение». Появится заготовка метод события «Click» (щелчок).
- В методе добавьте код, как показано на рисунке ниже.
- Обратите внимание на «UsersDataContext», так вызывается класс «LINQ to SQL», где «Users»- это имя созданного ранее файла. Также в данном коде имеются массив (Users), в который записываются построчно строки из заданной таблицы. Это позволяет легко производить операции по выборке данных.
- Запустите приложение, проведите тестирование по представленному плану.
Правильные данные
Логин | Пароль | (следующий переход) |
Admin | Форма Администратора | |
Root | Форма Пользователя |
Не правильные данные
Логин | Пароль | (следующий переход) |
SSS | Сообщение «Вы ввели неверный логин или пароль. Пожалуйста, проверьте ещё раз введенные данные» | |
Root |
Задание 11. Если в течение трех раз подряд был неверно введен логин/пароль, то система должна заблокировать пользователя.
- Щелкните два раза ЛКМ по кнопке «Войти в приложение». Появится заготовка метод события «Click» (щелчок). Измените метод, как показано на рисунке ниже.
- Запустите приложение, проведите тестирование по представленному плану.
Данные для изменения записей в базе данных и для ввода в форму авторизации.
Логин | Пароль | (следующий переход) |
Root | Сообщение «Вы ввели неверный логин или пароль. Пожалуйста, проверьте ещё раз введенные данные» | |
Root | ||
Root | ||
Root | Сообщение «Вы заблокированы. Обратитесь к администратору системы» |
Задание 12. Учетная запись должна блокироваться если пользователь системы не заходил в неё в течении 1 месяца.
- Щелкните два раза ЛКМ по кнопке «Войти в приложение». Появится заготовка метод события Click (щелчок). Измените метод, как показано на рисунке ниже.
- Запустите приложение, проведите тестирование по представленному плану.
Данные для изменения записей в базе данных и для ввода в форму авторизации.
Логин | Пароль | Дата входа | (следующий переход) |
Me | от текущей даты ПК отсчитайте назад равное или большее 30 дней (месяц назад) | Сообщение «Вы заблокированы. Обратитесь к администратору системы» |
Задание 13. Создайте и настройте форму смены пароля.
- Добавьте в решение форму. Для этого откройте обозреватель решений, на проекте «WSR_GIA_Serkova» щелкните ПКМ, в контекстном меню выберите пункт «Добавить», а затем «Форма Windows».
- В открывшемся окне добавления элементов задайте имя новой форме: «UpdatePass.cs».
- Настройте свойство «Text» формы «UpdatePass» в значение «Измените пароль».
- Поместите на форму 4 элемента «Label», 3 элемента «TextBox» и один элемент «Button» с панели элементов (если панель не отображается, активируйте её в меню «Вид»-«Панель элементов»), в разделе «Стандартные элементы управления», как показано на рисунке.
- Настройте свойства элементов, значения которых представлены в таблице.
Элемент | Свойство | Значение свойства |
Label1 | Text (Текст надписи) | Измените пароль Вашей учетной записи, т. к. Вы не меняли пароль более 14 дней |
Label2 | Старый пароль | |
Label3 | Новый пароль | |
Label4 | Подтвердите пароль | |
Button1 | Изменить пароль | |
Label1 | ForeColor (Цвет текста) | |
Label1 | Font (Шрифт) | Размер 14 пт |
Label2 | ||
Label3 | ||
Label4 | ||
TextBox1 | ||
TextBox2 | ||
Button1 | ||
Label1 | MaximumSize (Для переноса строки) |
- Внешний вид формы представлен на рисунке.
Задание 14. Для того, чтобы между формами была передача данных о текущем пользователе, создайте глобальную переменную номер редактируемого пользователя.
- Щелкните два раза ЛКМ по кнопке «Войти в приложение». Появится заготовка метод события «Click» (щелчок). Измените метод, как показано на рисунке ниже.
Задание 15. После успешной авторизации, в случае если пользователь не менял пароль в течение 14 дней должна выводиться форма для смены пароля. Если в форме смены пароля - текущий пароль введен неверно или новый пароль не совпадает с подтверждением должно выводиться соответствующее сообщение.
- Щелкните два раза ЛКМ по кнопке «Изменить пароль» на форме «UpdatePass». Появится заготовка метод события «Click» (щелчок). Внесите изменения в верхнюю часть перед методом «button1_Click», как показано на рисунке. Данный код позволит загрузить номер пользователя, который меняет пароль.
- Внесите изменения метод «button1_Click», как показано на рисунке.
- Для корректного закрытия всего приложения, после закрытия окна «UpdatePass» создайте процедуру закрытия формы, выделив форму, переключитесь на список методов, в списке методов напротив метода «FormClosing» кликните два раза мышью в пустой строке соседнего столбца.
- Появится заготовка метод события «FormClosing» (Закрытие формы). Измените метод в соответствии с рисунком.
- Откройте форму
- Щелкните два раза ЛКМ по кнопке «Войти в приложение». Появится заготовка метод события «Click» (щелчок). Измените метод, как показано на рисунке ниже.
- Запустите приложение, проведите тестирование по представленному плану.
Данные для изменения записей в базе данных и для ввода в форму авторизации
Логин | Пароль | Дата входа | (следующий переход) |
Ivan | от текущей даты ПК отсчитайте назад равное или большее 14 дней | Форма смены пароля |
Правильные данные для формы Смены пароля
Пароль | Новый пароль | Подтверждение | (следующий переход) |
Сообщение «Смена пароля прошла успешно» |
Не правильные данные