Udostępnij za pośrednictwem


ClaimsPrincipalPermissionAttribute Klasa

Definicja

Reprezentuje atrybut zabezpieczeń używany do deklaratywnego przypisywania kontroli dostępu na podstawie logiki dostarczonej ClaimsAuthorizationManager przez wystąpienie w bieżącym kontekście aplikacji. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
ClaimsPrincipalPermissionAttribute
Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak chronić metodę przez dekorowanie jej za pomocą atrybutu ClaimsPrincipalPermissionAttribute . Atrybut oceni, czy dostęp powinien zostać przyznany bieżącemu podmiotowi zabezpieczeń, korzystając z logiki dostarczonej ClaimsAuthorizationManager przez wystąpienie w kontekście aplikacji. Jeśli bieżący podmiot zabezpieczeń nie jest autoryzowany dla określonej akcji w określonym zasobie, SecurityException jest zgłaszany. W przeciwnym razie wykonanie następuje.


//
// 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()
{
}

Poniższy kod XML przedstawia minimalną konfigurację wymaganą do używania niestandardowego menedżera autoryzacji oświadczeń z klasą ClaimsPrincipalPermissionAttribute . Należy zadeklarować co najmniej sekcje system.identityModel i system.identityModel.services w elemecie <configSection> , a następnie określić menedżera autoryzacji w elemecie <claimsAuthorizationManager> w ramach domyślnej konfiguracji tożsamości. Zapewni to, że menedżer autoryzacji jest przywołyny z domyślnej konfiguracji federacji. Alternatywnie można określić nazwę konfiguracji tożsamości, w ramach której menedżer autoryzacji jest określony w identityConfigurationName atrybucie <elementu 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>  

Uwagi

Element ClaimsPrincipalPermissionAttribute jest używany do deklaratywnego żądania kontroli dostępu przy użyciu skonfigurowanego ClaimsAuthorizationManagerelementu .

Musisz określić jedną z SecurityAction wartości, a Resource i Operation w deklaracji ClaimsPrincipalPermissionAttribute . Właściwości Resource i Operation określają zasób i akcję, dla której bieżący podmiot zabezpieczeń (Thread.CurrentPrincipal) musi być autoryzowany do wykonania, aby kontynuować. Jeśli bieżący podmiot zabezpieczeń nie ma autoryzacji do wykonania określonej akcji (operacji) dla określonego zasobu, SecurityException jest zgłaszany.

Ważne

Klasa ClaimsPrincipalPermissionAttribute używa menedżera autoryzacji oświadczeń skonfigurowanych przez klasę IdentityConfiguration ustawioną w FederatedAuthentication.FederationConfiguration ramach właściwości . Dotyczy to wszystkich przypadków, nawet w scenariuszach, w których nie jest używana WS-Federation; na przykład aktywne aplikacje internetowe (WCF) i aplikacje konsolowe. Menedżer autoryzacji oświadczeń można określić w konfiguracji lub programowo. Aby określić menedżera autoryzacji oświadczeń w pliku konfiguracji, ustaw element <claimsAuthorizationManager> w elemencie <identityConfiguration> i upewnij się, że ta konfiguracja tożsamości jest przywoływany przez <element federationConfiguration> ładowany przez środowisko uruchomieniowe (na przykład przez ustawienie atrybutu identityConfigurationName ). Aby programowo ustawić menedżera autoryzacji oświadczeń, podaj procedurę obsługi dla zdarzenia FederatedAuthentication.FederationConfigurationCreated .

Konstruktory

ClaimsPrincipalPermissionAttribute(SecurityAction)

Inicjuje nowe wystąpienie klasy ClaimsPrincipalPermissionAttribute.

Właściwości

Action

Pobiera lub ustawia akcję zabezpieczeń.

(Odziedziczone po SecurityAttribute)
Operation

Pobiera lub ustawia operację, dla której bieżący podmiot zabezpieczeń powinien być autoryzowany w określonym zasobie.

Resource

Pobiera lub ustawia zasób, na którym podmiot zabezpieczeń powinien być autoryzowany do wykonania określonej akcji (operacji).

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)
Unrestricted

Pobiera lub ustawia wartość wskazującą, czy zadeklarowane jest pełne (nieograniczone) uprawnienie do zasobu chronionego przez atrybut.

(Odziedziczone po SecurityAttribute)

Metody

CreatePermission()

Tworzy nowe wystąpienie ClaimsPrincipalPermission klasy, która jest oparta na bieżącym wystąpieniu.

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też