Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Safonov / AMPN_course_22.pptx
Скачиваний:
137
Добавлен:
16.04.2015
Размер:
256.5 Кб
Скачать

Содержание

Общие определенияВиды полномочийИспользование ролей

Безопасность доступа к кодуПолитики безопасностиНастройка системы безопасности

(C) Сафонов В.О. 2012

Виды полномочий

Доступ к коду: полномочия кода для доступа к защищенному ресурсу или для выполнения защищенной операции

EnvironmentPermission, FileDialogPermission,

FileIOPermission, ReflectionPermission и др.

Идентификация: анализ происхождения сборки

PublisherIdentityPermission,

SiteIdentityPermission,

StrongNameIdentityPermission,

ZoneIdentityPermission,

URLIdentityPermission

Ролевая безопасность: принадлежность пользователя к некоторой роли (“sysadmin”, “manager”, “engineer” и др.)

PrincipalPermission

Пользователь может также определить новые полномочия безопасности

(C) Сафонов В.О. 2012

Интерфейс

IPermission

Операции над полномочиями:

Copy()

Intersect()Union()

IsSubsetOf()

Проверка полномочий:

Demand()

(C) Сафонов В.О. 2012

Полномочия для управления полномочиями

SecurityPermission

AllFlags – неограниченные полномочия для управления полномочиями

UnmanagedCode – полномочия для исполнения неуправляемого кода

ControlAppDomain – полномочия для управления областью приложения

Assertion – полномочия, гарантирующие полномочия

И многие другие

(C) Сафонов В.О. 2012

Пример: Использование полномочий безопасности

Создает объект для описания полномочий и требует их наличия от вызывающего метода

using System.Security.Permissions; public class Filer()

{

public Filer(string path, bool readOnly) { FileIOPermission p = new FileIOPermission(readOnly ?

FileIOPermissionAccess.Read :

FileIOPermissionAccess.AllAccess, path);

p.Demand();

//Work with the file

//

}

}

(C) Сафонов В.О. 2012

Пример (2)

Полномочия, реализованные с помощью

атрибутов

Хранятся в метаданных сборки

Исполняются автоматически

using System.Security.Permissions;

public class Filer()

{

[MyPermission(SecurityAction.Demand,

Unrestricted = True)]

public Filer(string path, bool readOnly) {

// open the file

// …

}

}

(C) Сафонов В.О. 2012

Декларативные проверки полномочий

Преимущества

Проще использовать и набиратьДоступны для рефлексии

Могут быть использованы системными инструментами для обнаружения конфликтов

Недостатки

Невозможность обработки исключений

(C) Сафонов В.О. 2012

Содержание

Общие определенияВиды полномочийИспользование ролей

Безопасность доступа к кодуПолитики безопасностиНастройка системы безопасности

(C) Сафонов В.О. 2012

Использование ролей

Разделение доступа для групп пользователей

IPrincipal.IsInRole(roleName)

Использование результата аутентификации

IIdentity.Name

IIdentity.IsAutenticated

IIdentity.AuthenticationType

PrincipalPermission

Работает с текущим главным пользователем сборки

(C)Сафонов В.О. 2012

Подмена главного пользователя

Thread.CurrentPrincipal

Полезно в случае, если используется свой собственный механизм аутентификации

Необходимо при работе по поручению какого-

либо другого пользователя

Права на подстановку главного пользователя регулируются:

SecurityPermission

(C) Сафонов В.О. 2012

Соседние файлы в папке Safonov