CodeAccessPermission Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет базовую структуру всех разрешений доступа к коду.
public ref class CodeAccessPermission abstract : System::Security::IPermission, System::Security::IStackWalk
[System.Serializable]
public abstract class CodeAccessPermission : System.Security.IPermission, System.Security.IStackWalk
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class CodeAccessPermission : System.Security.IPermission, System.Security.IStackWalk
[<System.Serializable>]
type CodeAccessPermission = class
interface IPermission
interface ISecurityEncodable
interface IStackWalk
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CodeAccessPermission = class
interface IPermission
interface ISecurityEncodable
interface IStackWalk
Public MustInherit Class CodeAccessPermission
Implements IPermission, IStackWalk
- Наследование
-
CodeAccessPermission
- Производный
- Атрибуты
- Реализации
Комментарии
Предостережение
Безопасность доступа к коду (CAS) устарела во всех версиях платформ .NET Framework, и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.
Разрешения доступа к коду используют пошаговое руководство по стеку, чтобы убедиться, что всем вызывающим файлам кода предоставлено разрешение. Если объект разрешения имеет nullзначение, он обрабатывается так же, как объект разрешения с состоянием PermissionState.None.
Стек вызовов обычно представлен как растущий, так что методы выше в методах вызова стека вызовов ниже в стеке вызовов.
Наследующие классу должны быть предоставлены полное доверие для правильной CodeAccessPermission работы в качестве разрешений, расширяющих инфраструктуру безопасности. Чтобы определить, что наследующие являются полностью доверенными, CodeAccessPermission возникают проблемы InheritanceDemand и ControlPolicyControlEvidencetrue = true = .
Примечания для тех, кто реализует этот метод
При наследовании IUnrestrictedPermission от CodeAccessPermission, необходимо также реализовать интерфейс.
Следующие CodeAccessPermission члены должны быть переопределены: Copy(), Intersect(IPermission), IsSubsetOf(IPermission), ToXml(), FromXml(SecurityElement)и Union(IPermission).
Необходимо также определить конструктор, который принимает его PermissionState единственный параметр.
Атрибут должен применяться к классу SerializableAttribute , который наследует от CodeAccessPermission.
Конструкторы
| Имя | Описание |
|---|---|
| CodeAccessPermission() |
Инициализирует новый экземпляр класса CodeAccessPermission. |
Методы
| Имя | Описание |
|---|---|
| Assert() |
Объявляет, что вызывающий код может получить доступ к ресурсу, защищенному запросом разрешений, с помощью кода, вызывающего этот метод, даже если вызывающие элементы в стеке не были предоставлены разрешения на доступ к ресурсу. Использование Assert() может создавать проблемы безопасности. |
| Copy() |
При реализации производным классом создает и возвращает идентичную копию текущего объекта разрешения. |
| Demand() |
SecurityException Принудительно выполняется, если все вызывающие объекты в стеке вызовов не были предоставлены разрешения, указанные текущим экземпляром. |
| Deny() |
Устаревшие..
Запрещает вызывающим объектам в стеке вызовов использовать код, который вызывает этот метод для доступа к ресурсу, указанному текущим экземпляром. |
| Equals(Object) |
Определяет, равен ли указанный CodeAccessPermission объект текущему CodeAccessPermissionобъекту. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| FromXml(SecurityElement) |
При переопределении в производном классе восстанавливает объект безопасности с указанным состоянием из кодировки XML. |
| GetHashCode() |
Получает хэш-код для объекта, который подходит для CodeAccessPermission использования в хэш-алгоритмах и структурах данных, таких как хэш-таблица. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| Intersect(IPermission) |
При реализации производным классом создает и возвращает разрешение, которое является пересечением текущего разрешения и указанного разрешения. |
| IsSubsetOf(IPermission) |
При реализации производным классом определяет, является ли текущее разрешение подмножеством указанного разрешения. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| PermitOnly() |
Запрещает вызывающим объектам в стеке вызовов использовать код, который вызывает этот метод для доступа ко всем ресурсам, кроме ресурса, указанного текущим экземпляром. |
| RevertAll() |
Вызывает все предыдущие переопределения для удаления текущего кадра и больше не действует. |
| RevertAssert() |
Приводит к удалению любого предыдущего Assert() кадра и больше не действует. |
| RevertDeny() |
Устаревшие..
Приводит к удалению любого предыдущего Deny() кадра и больше не действует. |
| RevertPermitOnly() |
Приводит к удалению любого предыдущего PermitOnly() кадра и больше не действует. |
| ToString() |
Создает и возвращает строковое представление текущего объекта разрешений. |
| ToXml() |
При переопределении в производном классе создает XML-кодировку объекта безопасности и его текущего состояния. |
| Union(IPermission) |
При переопределении в производном классе создает разрешение, которое является объединением текущего разрешения и указанного разрешения. |