Sdílet prostřednictvím


ClaimsPrincipalPermissionAttribute Třída

Definice

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
ClaimsPrincipalPermissionAttribute
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.OperationClaimsPrincipalPermissionAttribute 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)

Platí pro

Viz také