на начало
На главную страницу
Форум   

Статья :: Неуправляемый код


Неуправляемый код

Утверждения необходимы для того, чтобы управлять доступом к неуправляемому коду. Дело в том, что этот код не должен прямо вызываться управляемым кодом. Чтобы вызывать неуправляемый код, требуется соответствующее разрешение. Поскольку общеязыковая среда выполнения CLR просматривает стек, чтобы проверить, имеют ли все вызывающие программы разрешение на вызов неуправляемого кода, то разрешение на вызов неуправляемого кода надо предоставить всему коду. Следовательно, сборки, не относящиеся к тем, которым вы доверяете, могли бы выполнять операции с помощью вызовов интерфейса 32-разрядных Windows-приложений (API Win32) и подрывать систему безопасности .NET.
Лучше делать вызовы через интерфейсные классы сборки, которая имеет право на управляемый код. Код интерфейсного класса должен сначала выяснить, есть ли у вызывающей программы соответствующие права от общеязыковой среды выполнения CLR, и поэтому требует, чтобы вызывающая программа имела минимальный набор разрешений, необходимых для выполнения задачи (такой, например, как запись в файл). Если требование прав удовлетворено, то интерфейсный код может утвердить право на управляемый код. Тогда никакой другой сборке из цепочки вызовов право на управляемый код не требуется.
Например, когда вы просите файловые .NET-классы удалить какой-либо файл, то вначале они требуют разрешение на удаление этого файла. Если разрешение получено, то код утверждает право на вызов управляемого кода и вызывает для выполнения удаления интерфейс 32-разрядных Windows-приложений (API Win32).


Неуправляемый код

страницы в данном разделе 
Глава 13. Защита Защита
Защита на основе пользователей Защита доступа к коду
Политика безопасности Разрешения
lnternet-безопасность Информационный сервер Internet: Internet Information Server (MS)
Защита .NET на основе ролей Принципалы и личности
Роли .NET в Windows Другие классы личностей
Личность в операционной системе и общеязыковой среде выполнения CLR Разрешения коду на доступ
Простой запрос разрешения кодом Как работает запрос на разрешение
Стратегия запроса разрешений Запрет разрешений
Утверждение разрешений Другие методы разрешений
Класс SecurityPermission Неуправляемый код
Разрешения на основе атрибутов Разрешение принципала
Класс PermissionSet Личность кода
Классы разрешений для личности Подтверждение
Политика безопасности Уровни политики безопасности
Кодовые группы Именованные наборы разрешений
Изменение политики безопасности Резюме


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста