ClaimsPrincipalPermissionAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет атрибут безопасности, используемый для декларативного присвоения проверок доступа на основе логики, представленной экземпляром ClaimsAuthorizationManager в текущем контексте приложения. Этот класс не наследуется.
public ref class ClaimsPrincipalPermissionAttribute sealed : System::Security::Permissions::CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, AllowMultiple=true)]
public sealed class ClaimsPrincipalPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, AllowMultiple=true)>]
type ClaimsPrincipalPermissionAttribute = class
inherit CodeAccessSecurityAttribute
Public NotInheritable Class ClaimsPrincipalPermissionAttribute
Inherits CodeAccessSecurityAttribute
- Наследование
- Атрибуты
Примеры
В следующем примере показано, как защитить метод, декорируя его атрибутом ClaimsPrincipalPermissionAttribute . Атрибут будет оценивать, следует ли предоставлять доступ текущему субъекту, используя логику, предоставляемую экземпляром ClaimsAuthorizationManager в контексте приложения. Если текущий субъект не авторизован для указанного действия в указанном ресурсе SecurityException , возникает исключение ; в противном случае выполняется.
//
// Declarative access check using the permission class. The caller must satisfy both demands.
//
[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "resource", Operation = "action")]
[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "resource1", Operation = "action1")]
static void ProtectedMethod()
{
}
В следующем XML-коде показана минимальная конфигурация, необходимая для использования пользовательского диспетчера авторизации утверждений с классом ClaimsPrincipalPermissionAttribute . Необходимо как минимум объявить разделы system.identityModel
и в <configSection>
элементе system.identityModel.services
, а затем указать диспетчер авторизации в <элементе claimsAuthorizationManager> в конфигурации удостоверения по умолчанию. Это гарантирует, что на диспетчер авторизации будет ссылаться конфигурация федерации по умолчанию. Кроме того, можно указать имя конфигурации удостоверений, в которой указан диспетчер авторизации, в identityConfigurationName
атрибуте <элемента federationConfiguration> .
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!-- WIF configuration sections -->
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.identityModel>
<identityConfiguration>
<claimsAuthorizationManager type ="MyClaimsAuthorizationManager.MyClaimsAuthorizationManager, MyClaimsAuthorizationManager"/>
</identityConfiguration>
</system.identityModel>
</configuration>
Комментарии
ClaimsPrincipalPermissionAttribute используется для декларативного запроса доступа проверка с помощью настроенного ClaimsAuthorizationManager.
В объявлении SecurityAction необходимо указать одно из значений , и Resource
.ClaimsPrincipalPermissionAttributeOperation
Свойства Resource
и Operation
указывают ресурс и действие, для которых текущий субъект (Thread.CurrentPrincipal) должен быть авторизован для продолжения выполнения. Если текущий субъект не авторизован для выполнения указанного действия (операции) с указанным ресурсом SecurityException , возникает исключение .
Важно!
Класс ClaimsPrincipalPermissionAttribute использует диспетчер авторизации утверждений, настроенный IdentityConfiguration с помощью , который задается в свойстве FederatedAuthentication.FederationConfiguration . Это верно во всех случаях, даже в тех случаях, когда WS-Federation не используется; например, активные веб-приложения (WCF) и консольные приложения. Диспетчер авторизации утверждений можно указать в конфигурации или программным способом. Чтобы указать диспетчер авторизации утверждений в файле конфигурации, задайте <элемент claimsAuthorizationManager> в элементе <identityConfiguration> и убедитесь, что на эту конфигурацию удостоверений ссылается <элемент federationConfiguration> , загруженный средой выполнения (например, задав identityConfigurationName
атрибут ). Чтобы задать диспетчер авторизации утверждений программным способом, предоставьте обработчик для FederatedAuthentication.FederationConfigurationCreated события .
Конструкторы
ClaimsPrincipalPermissionAttribute(SecurityAction) |
Инициализирует новый экземпляр класса ClaimsPrincipalPermissionAttribute. |
Свойства
Action |
Возвращает или задает действие по обеспечению безопасности. (Унаследовано от SecurityAttribute) |
Operation |
Получает или задает операцию, для которой текущий субъект должен быть авторизован на указанном ресурсе. |
Resource |
Получает или задает ресурс, на котором текущий субъект должен быть авторизован для выполнения указанного действия (операции). |
TypeId |
В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute. (Унаследовано от Attribute) |
Unrestricted |
Возвращает или задает значение, определяющее, объявлено ли полное (неограниченное) разрешение доступа к ресурсу, защищенному атрибутом. (Унаследовано от SecurityAttribute) |
Методы
CreatePermission() |
Создает новый экземпляр классаClaimsPrincipalPermission, основанный на текущем экземпляре. |
Equals(Object) |
Возвращает значение, показывающее, равен ли экземпляр указанному объекту. (Унаследовано от Attribute) |
GetHashCode() |
Возвращает хэш-код данного экземпляра. (Унаследовано от Attribute) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |