PrincipalPermission Класс

Определение

Внимание!

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

Позволяет проверять активный субъект (см. раздел IPrincipal) с помощью языковых конструкций, определенных как для декларативных, так и для императивных действий безопасности. Этот класс не наследуется.

public ref class PrincipalPermission sealed : System::Security::IPermission, System::Security::Permissions::IUnrestrictedPermission
[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 PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
public sealed class PrincipalPermission : System.Security.IPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
[<System.Serializable>]
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermission = class
    interface IPermission
    interface IUnrestrictedPermission
    interface ISecurityEncodable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
type PrincipalPermission = class
    interface IPermission
    interface ISecurityEncodable
    interface IUnrestrictedPermission
Public NotInheritable Class PrincipalPermission
Implements IPermission, IUnrestrictedPermission
Наследование
PrincipalPermission
Атрибуты
Реализации

Комментарии

Предостережение

Безопасность доступа к коду (CAS) устарела во всех версиях платформ .NET Framework, и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.

Передав сведения об удостоверении (имя пользователя и роль) конструктору, PrincipalPermission можно использовать для запроса на то, что удостоверение активного участника соответствует этой информации.

Чтобы соответствовать активному IPrincipal и связанному IIdentity, необходимо соответствовать как указанному удостоверению, так и роли. Если null используется строка удостоверения, она интерпретируется как запрос на соответствие любому удостоверению. Использование строки роли будет соответствовать любой null роли. По сути, передача null параметра для name или rolePrincipalPermission сопоставления удостоверений и ролей в любом IPrincipal. Кроме того, можно создать PrincipalPermission объект, который определяет, представляет ли IIdentity проверяемая или неуверенная сущность. В этом случае name и role игнорируются.

В отличие от большинства других разрешений, PrincipalPermission не расширяется CodeAccessPermission. Однако он реализует IPermission интерфейс. Это связано с тем, что PrincipalPermission это не разрешение на доступ к коду, то есть оно не предоставляется на основе удостоверения выполняемой сборки. Вместо этого он позволяет коду выполнять действия (Demand, и UnionIntersectт. д.) для текущего удостоверения пользователя в соответствии с способом выполнения этих действий для разрешений на доступ к коду и удостоверения кода.

Important

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

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal).

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

Имя Описание
PrincipalPermission(PermissionState)
Устаревшие.

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

PrincipalPermission(String, String, Boolean)
Устаревшие.

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

PrincipalPermission(String, String)
Устаревшие.

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

Методы

Имя Описание
Copy()
Устаревшие.

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

Demand()
Устаревшие.

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

Equals(Object)
Устаревшие.

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

Equals(Object)
Устаревшие.

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

(Унаследовано от Object)
FromXml(SecurityElement)
Устаревшие.

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

GetHashCode()
Устаревшие.

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

GetHashCode()
Устаревшие.

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()
Устаревшие.

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

(Унаследовано от Object)
Intersect(IPermission)
Устаревшие.

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

IsSubsetOf(IPermission)
Устаревшие.

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

IsUnrestricted()
Устаревшие.

Возвращает значение, указывающее, является ли текущее разрешение неограниченным.

MemberwiseClone()
Устаревшие.

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

(Унаследовано от Object)
ToString()
Устаревшие.

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

ToXml()
Устаревшие.

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

Union(IPermission)
Устаревшие.

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

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

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