* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Защита приложения
8 февраля 2009

Сейчас вы добавите к приложению код, необходимый для его защиты. Для
проверки роли текущего пользователя вы примените императивную за-
щиту, а для защиты доступа к принтеру — декларативную.
Как защитить приложение
В Solution Explorer щелкните правой кнопкой Forml и выберите View Code -
код формы Form] откроется в редакторе.
Добавьте к конструктору формы Forml код, ограничивающий круг лии, имею-
щих доступ к приложению, членами встроенной группы Windows Administrators:
Visual Basic .NET
AppDomain.CurrentDomain.SetPrincipalPolicy
(System.Security.Principal.PrincipalPolicy.WindowsPrincipal)
Dim myPerm As New
System.Security.Permissions,Principal Permission(Nothing.
"8UILTIN\Administrators")
Try
myPerm. DemandO
Catch se As System.Security.SecurityException
MessageBox.Show
("You do not have permission to run this program!")
End
End Try
Visual C#
AppOorr.ain.CurrentDomain.SetPriici pal Policy
(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);
System. Security. Permissions. PrincipalPerrnission myPerm - new
System.Security.Permissions.PrincipalPermission(null.
"BUILTIN\\Administraters");
try
myPerm. DemandO;
catch(System.Security.SecurityException se)
3. Найдите метод btnPrint_Click и добавьте к нему следующий атрибут. Он необхо-
дим, чтобы только доверенный код смог выводить данные на принтер:
Visual Basic .NET
Visual C#
[System.Drawing.Printing.PrintingPermission
(System. Security, Permissions. SecuntyAction. Demand,
Level=System. Drawing.Printing.PrintingPermission Level,AlIP Dinting)]
4. Добавьте к методу btnPrint_Click обработку исключений, которые могут возник-
нуть при попытке вывода на печать:
Visual Basic .NET
Try
PrintOocumentl.Printf)
Catch
MessageBox.Show("You do not have permission to print!")
End Try
Visual C#
.
5. Нажмите F5, чтобы протестировать приложение — оно должно работать нор-
мально.
Примечание Если вы не входите в группу Administrators, приложение работать
не будет. В этом случае задайте роль, соответствующую встроенной группе
Windows, членом которой вы являетесь. Если при попытке печати возникает
исключение безопасности, настройте для сборки приложения соответствующую
политику безопасности самостоятельно или попросить об этом системного ад-
министратора.
В строке, где создается объект Principal Permission, замените BUlLTIN\Admini$t~
rators на любую роль, которая не существует в Windows (например, на BU1LTlN\
Admimstratorss). Нажмите F4, чтобы скомпоновать и запустить приложение,
Приложение отвергнет запрошенное вами разрешение и завершится неудачей.
В программе на Visual Basic .NET приложение просто завершится, а программа
на Visual C# генерирует необработанное исключение, которое генерируется по-
вторно. Верните роли прежнее значение (BUILTIN\Administrators).
В атрибуте разрешения PrintingPermission замените действие Demand на Deny. На-
жмите F5, чтобы скомпоновать и запустить приложение. Попробуйте что-ни-
будь напечатать.
Программа отказывает в предоставлении запрошенного разрешения и уведом-
ляет о этом пользователя. Верните исходное значение флагу действия защиты и
перекомпилируйте приложение.
В меню File выберите команду Save AIL чтобы сохранить свою работу.

Теги: .NET

Статьи по теме:

Объект DataRelation
Создание составных элементов управления
Создание проекта установочной программы
Запись трассировочных данных в журнал событий
Декларативная защита, основанная на ролях
Автоматизация разработки
Обзор .NET Framework
Сборщик мусора
Извлечение данных XML из баз данных SQL Server 2000
Строительные блоки .NET
Замыкания (closure)
Циклические ссылки
Создание проекта установочной программы
Модификация и обновление данных
Проверка разрешений, запрашиваемых установленной сборкой
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Защита приложения. Регион сайта: Москва и Санкт-Петербург