Создание Windows-приложений на основе Visual C#




Приложение CustomSecurity — использование собственной технологии ролевой безопасности - часть 3


// Если необходимо реагировать на изменение роли без перезагрузки приложения, то это можно сделать так: //return role == this.GetUserRole(); }

#endregion /// <summary> /// Возвращаем роль пользователя. /// </summary> /// <returns></returns> private string GetUserRole() { // Считываем и сравниваем имя пользователя. XmlTextReader xmlReader = new XmlTextReader("Users.xml"); xmlReader.WhitespaceHandling = WhitespaceHandling.None; while(xmlReader.Read()) { if(xmlReader["name"] == this._indentity.Name) return xmlReader["role"]; } // Если роль пользователя не найдена, генерируем исключение. throw new System.Security.SecurityException(String.Format("Роль пользователя {0} не найдена в базе данных.", this._indentity.Name)); } } }

Листинг 10.6.

Теперь займемся пользовательским интерфейсом программы и привязкой обработчиков. Все приложения, которые мы рассматривали в предыдущих лекциях, я сопровождал описанием дизайна форм и не указывал в листинге область Windows Form Designer generated code. Сейчас я поступлю наоборот — я приведу код, генерируемый средой, и изображения формы, а вы, скопировав код, относящийся к дизайну, разберетесь с элементами, которые были использованы для создания интерфейса. Итак, главная форма программы будет иметь следующий вид (рис. 10.14):

Главная форма проекта CustomSecurity

Рис. 10.15.  Главная форма проекта CustomSecurity

В окне Solution Explorer переименуйте Form1.cs в MainForm.cs, добавьте на форму элемент управления ImageList и поместите в коллекцию две иконки (на рис. 10.15 эти иконки были использованы для кнопок панели инструментов).

Листинг формы MainForm:

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Threading; using System.Xml; using System.Xml.XPath; using System.IO;

namespace CustomSecurity { /// <summary> /// Главная форма. /// </summary> public class MainForm : System.Windows.Forms.Form { private System.Windows.Forms.ToolBarButton btnViewUsers; private System.Windows.Forms.ToolBarButton btnEditUsers; private System.Windows.Forms.ImageList toolBoxIcons; private System.Windows.Forms.ToolBar toolBar; private System.Windows.Forms.ListView lstViewUsers; private System.Windows.Forms.ColumnHeader colUserName; private System.Windows.Forms.ColumnHeader colUserRole; private System.Windows.Forms.ColumnHeader colUserId; private System.ComponentModel.IContainer components;




Содержание  Назад  Вперед