ClaimsPrincipalPermissionAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje atribut zabezpečení používaný k deklarativně přiřazování kontrol přístupu na základě logiky poskytované ClaimsAuthorizationManager instancí v aktuálním kontextu aplikace. Tato třída se nemůže dědit.
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
- Dědičnost
- Atributy
Příklady
Následující příklad ukazuje, jak chránit metodu tak, že ji ozdobíte atributem ClaimsPrincipalPermissionAttribute . Atribut vyhodnotí, jestli má být udělen přístup k aktuálnímu objektu zabezpečení pomocí logiky poskytnuté ClaimsAuthorizationManager instancí v kontextu aplikace. Pokud aktuální objekt zabezpečení není autorizovaný pro zadanou akci u zadaného prostředku, SecurityException vyvolá se příkaz . V opačném případě bude provádění pokračovat.
//
// 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()
{
}
Následující kód XML ukazuje minimální konfiguraci potřebnou k použití vlastního správce autorizace deklarací identity s ClaimsPrincipalPermissionAttribute třídou. Musíte alespoň deklarovat oddíly system.identityModel
a system.identityModel.services
oddíly v elementu <configSection>
a poté zadat správce autorizace v elementu< claimsAuthorizationManager> ve výchozí konfiguraci identity. Tím zajistíte, že se na správce autorizací odkazuje výchozí konfigurace federace. Případně můžete zadat název konfigurace identity, pod kterou je správce autorizací zadaný v atributu identityConfigurationName
<prvku 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>
Poznámky
Slouží ClaimsPrincipalPermissionAttribute k deklarativnímu vyžádání kontroly přístupu pomocí nakonfigurovaného ClaimsAuthorizationManagerobjektu .
V deklaraci musíte zadat jednu z SecurityAction hodnot, Resource
a a.Operation
ClaimsPrincipalPermissionAttribute Vlastnosti Resource
a Operation
určují prostředek a akci, pro kterou musí být aktuální objekt zabezpečení (Thread.CurrentPrincipal) autorizován pro provádění, aby mohl pokračovat. Pokud aktuální objekt zabezpečení nemá oprávnění k provedení zadané akce (operace) se zadaným prostředkem SecurityException , vyvolá se objekt .
Důležité
Třída ClaimsPrincipalPermissionAttribute používá správce autorizace deklarací nakonfigurovaný objektem IdentityConfiguration nastaveným FederatedAuthentication.FederationConfiguration ve vlastnosti . To platí ve všech případech, a to i ve scénářích, kde se nepoužívá WS-Federation; Například aktivní webové aplikace (WCF) a konzolové aplikace. Správce autorizace deklarací identity můžete zadat buď v konfiguraci, nebo prostřednictvím kódu programu. Pokud chcete zadat správce autorizace deklarací identity v konfiguračním souboru, nastavte <element claimsAuthorizationManager> pod <element identityConfiguration> a ujistěte se, že na tuto konfiguraci identity odkazuje <element federationConfiguration> , který je načten modulem runtime (například nastavením atributu identityConfigurationName
). Pokud chcete správce autorizace deklarací nastavit programově, zadejte obslužnou rutinu FederatedAuthentication.FederationConfigurationCreated události.
Konstruktory
ClaimsPrincipalPermissionAttribute(SecurityAction) |
Inicializuje novou instanci ClaimsPrincipalPermissionAttribute třídy. |
Vlastnosti
Action |
Získá nebo nastaví akci zabezpečení. (Zděděno od SecurityAttribute) |
Operation |
Získá nebo nastaví operaci, pro kterou by měl být aktuální objekt zabezpečení autorizovaný pro zadaný prostředek. |
Resource |
Získá nebo nastaví prostředek, u kterého by měl být objekt zabezpečení autorizovaný k provedení zadané akce (operace). |
TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu . (Zděděno od Attribute) |
Unrestricted |
Získá nebo nastaví hodnotu určující, zda je deklarováno úplné (neomezené) oprávnění k prostředku chráněného atributem. (Zděděno od SecurityAttribute) |
Metody
CreatePermission() |
Vytvoří novou instanci ClaimsPrincipalPermission třídy, která je založená na aktuální instanci. |
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od Attribute) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
IsDefaultAttribute() |
Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, které lze použít k získání informací o typu pro rozhraní. (Zděděno od Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od Attribute) |