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




Использование объектов GenericIdentity и GenericPrincipal


Классы GenericPrincipal совместно с классом GenericIdentity применяются для реализации ролевой безопасности, не зависящей от системы безопасности Windows. Например, у пользователя запрашиваются имя и пароль, которые затем сверяются с данными, хранящимися в приложении или локальной базе данных, и, после успешной проверки, создаются объекты GenericPrincipal и GenericIdentity на основании введенных значений.

Для реализации ролевой безопасности на основе объектов классов GenericPrincipal и GenericIdentity необходимо выполнить следующие действия:

  • создать новый объект класса GenericIdentity и инициализировать его именем пользователя;
  • создать новый объект класса GenericPrincipal и инициализировать его только что созданным объектом класса
  • nericIdentity и строковым массивом, содержащим роли пользователя;
  • прикрепить созданный объект класса GenericPrincipal к текущему потоку. Прикрепление к текущему потоку необходимо для осуществления последующей проверки полномочий пользователя в коде приложения.

Синтаксис этих действий следующий:

// Создаем и инициализируем именем пользователя // объект класса GenericIdentity GenericIdentity identity = new GenericIdentity("Username"); // Создаем строковый массив, содержащий роли пользователя. string[] userRoles = new string[]{"Administrator", "PowerUser", "GuestUser"}; // Создаем объект класса GenericPrincipal и инициализируем его // объектом класса GenericIdentity identity и строковым массивом с // ролями. GenericPrincipal principal = new GenericPrincipal(identity, userRoles); // Прикрепляем объект роли к текущему процессу. // Этот и все дочерние процессы будут иметь данную роль. Thread.CurrentPrincipal = principal;

Создайте новое консольное приложение и назовите его GenericIdentityandPrincipal . Далее привожу листинг с комментариями:

Листинг 10.3.

(html, txt)

Если пользователь проходит проверку, он получает дальнейший доступ (рис. 10.13).

Результат приложения GenericIdentityandPrincipal

Рис. 10.13.  Результат приложения GenericIdentityandPrincipal

На диске, прилагаемом к книге, вы найдете приложение GenericIdentityandPrincipal (Code\Glava10\ GenericIdentityandPrincipal).




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