StrongNameIdentityPermission Класс

Определение

Внимание!

Code Access Security is not supported or honored by the runtime.

Определяет разрешение удостоверения для строгих имен. Этот класс не наследуется.

public ref class StrongNameIdentityPermission sealed : System::Security::CodeAccessPermission
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
[System.Serializable]
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
[<System.Serializable>]
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
Public NotInheritable Class StrongNameIdentityPermission
Inherits CodeAccessPermission
Наследование
StrongNameIdentityPermission
Атрибуты

Комментарии

Важно!

Начиная с платформа .NET Framework 4 разрешения удостоверения не используются.

В платформа .NET Framework версии 1.0 и 1.1 разрешения удостоверения не могут иметь Unrestricted значение состояния разрешения. В платформа .NET Framework версии 2.0 и более поздних версиях разрешения удостоверения могут иметь любое значение состояния разрешения. Это означает, что в версиях 2.0 и более поздних версиях разрешения удостоверения имеют такое же поведение, как и разрешения, реализующие IUnrestrictedPermission интерфейс. То есть требование удостоверения всегда выполняется успешно, независимо от удостоверения сборки, если сборке предоставлено полное доверие.

Используется StrongNameIdentityPermission для подтверждения того, что вызывающий код находится в определенной сборке кода со строгим именем. Полные требования к StrongNameIdentityPermission успеху только в том случае, если все сборки в стеке имеют правильные доказательства для удовлетворения спроса. Запросы связи, использующие атрибут, будут успешными только в том случае, StrongNameIdentityPermissionAttribute если непосредственный вызывающий объект имеет правильные доказательства.

Удостоверение строгого имени основано на криптографических открытых ключах, называемых двоичным большим объектом (BLOB), который при необходимости сочетается с именем и версией определенной сборки. Ключ определяет уникальное пространство имен и обеспечивает надежную проверку подлинности имени, поскольку определение имени должно находиться в сборке, подписанной соответствующим закрытым ключом.

Обратите внимание, что допустимость ключа строгого имени не зависит от отношения доверия или от любого сертификата, обязательно выдаваемого для ключа.

В платформа .NET Framework версии 1.0 и 1.1 требования к разрешениям удостоверения эффективны, даже если вызывающая сборка полностью доверяется. То есть, даже если вызывающая сборка имеет полное доверие, запрос на разрешение удостоверения завершается ошибкой, если сборка не соответствует требуемым критериям. В платформа .NET Framework версии 2.0 и более поздних версиях требования к разрешениям удостоверения неэффективны, если вызывающая сборка имеет полное доверие. Это обеспечивает согласованность для всех разрешений и устраняет обработку разрешений удостоверения в качестве специального случая.

Полное описание строгих имен см. на странице справки StrongName . Дополнительные сведения о сборках со строгими именами см. в разделе "Сборки со строгими именами".

Класс StrongNameIdentityPermission используется для определения требований строгого имени для доступа к открытым членам типа. Атрибут StrongNameIdentityPermissionAttribute можно использовать для определения требований строгого имени на уровне сборки. В платформа .NET Framework версии 2.0 и более поздних версий можно также использовать InternalsVisibleToAttribute атрибут, чтобы указать, что все неопубликованные типы в этой сборке видны другой сборке. Дополнительные сведения см. в разделе "Дружественные сборки".

Конструкторы

StrongNameIdentityPermission(PermissionState)

Инициализирует новый экземпляр класса StrongNameIdentityPermission указанным значением PermissionState.

StrongNameIdentityPermission(StrongNamePublicKeyBlob, String, Version)

Инициализирует новый экземпляр класса StrongNameIdentityPermission для указанного удостоверения строгого имени.

Свойства

Name

Возвращает или задает часть простого имени идентификатора строгого имени.

PublicKey

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

Version

Возвращает или задает номер версии удостоверения.

Методы

Assert()

Объявляет, что вызывающий код может получить доступ к ресурсу, защищенному требованием разрешения, через код, вызывающий этот метод, даже если вызывающим объектам выше в стеке вызовов не предоставлено разрешение на доступ к ресурсу. Assert() может вызвать проблемы системы безопасности.

(Унаследовано от CodeAccessPermission)
Copy()

Создает и возвращает идентичную копию текущего разрешения.

Demand()

Принудительно создает SecurityException во время выполнения, если все вызывающие методы, расположенные выше в стеке вызовов, не получили разрешения, указанного текущим экземпляром.

(Унаследовано от CodeAccessPermission)
Deny()
Является устаревшей.
Является устаревшей.

Запрещает вызывающим объектам выше в стеке вызовов использовать код, который вызывает этот метод для доступа к ресурсу, указанному текущим экземпляром.

(Унаследовано от CodeAccessPermission)
Equals(Object)

Определяет, равен ли заданный объект CodeAccessPermission текущему объекту CodeAccessPermission.

(Унаследовано от CodeAccessPermission)
FromXml(SecurityElement)

Восстанавливает разрешение с указанным состоянием из кодировки XML.

GetHashCode()

Возвращает хэш-код для объекта CodeAccessPermission, который можно использовать в алгоритмах хэширования и структурах данных, например в хэш-таблице.

(Унаследовано от CodeAccessPermission)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Intersect(IPermission)

Создает и возвращает разрешение, представляющее собой пересечение текущего и указанного разрешений.

IsSubsetOf(IPermission)

Определяет, является ли текущее разрешение подмножеством указанного разрешения.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
PermitOnly()

Запрещает вызывающим объектам выше в стеке вызовов использовать код, который вызывает этот метод для доступа ко всем ресурсам, за исключением ресурса, указанного текущим экземпляром.

(Унаследовано от CodeAccessPermission)
ToString()

Создает и возвращает строковое представление текущего объекта разрешения.

(Унаследовано от CodeAccessPermission)
ToXml()

Создает кодировку XML для разрешения и его текущего состояния.

Union(IPermission)

Создает разрешение, представляющее собой объединение текущего и указанного разрешений.

Явные реализации интерфейса

IPermission.Demand()

Создает исключение SecurityException во время выполнения, если требования безопасности не выполнены.

(Унаследовано от CodeAccessPermission)
IStackWalk.Assert()

Подтверждает, что вызывающий код может получить доступ к ресурсу, определяемому текущим объектом разрешения, даже если вызывающим объектам выше в стеке вызовов не предоставлено разрешение на доступ к ресурсу.

(Унаследовано от CodeAccessPermission)
IStackWalk.Demand()

Определяет во время выполнения, было ли разрешение, указанное текущим объектом разрешений, предоставлено всем вызывающим методам в стеке вызовов.

(Унаследовано от CodeAccessPermission)
IStackWalk.Deny()

Вызывает ошибку каждого Demand() для текущего объекта, проходящего через вызывающий код.

(Унаследовано от CodeAccessPermission)
IStackWalk.PermitOnly()

Вызывает сбой всех Demand() для всех объектов, кроме текущего, проходящих через вызывающий код, даже если коду выше в стеке вызовов было предоставлено разрешение на доступ к другим ресурсам.

(Унаследовано от CodeAccessPermission)

Применяется к

См. также раздел