ClaimsPrincipalPermissionAttribute Sınıf

Tanım

Geçerli uygulama bağlamında örnek tarafından ClaimsAuthorizationManager sağlanan mantığı temel alarak erişim denetimlerini bildirimli olarak atamak için kullanılan bir güvenlik özniteliğini temsil eder. Bu sınıf devralınamaz.

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
Devralma
ClaimsPrincipalPermissionAttribute
Öznitelikler

Örnekler

Aşağıdaki örnekte, bir yöntemi özniteliğiyle süsleyerek nasıl korunacakları gösterilmektedir ClaimsPrincipalPermissionAttribute . özniteliği, uygulama bağlamında örnek tarafından ClaimsAuthorizationManager sağlanan mantığı kullanarak geçerli sorumluya erişim verilip verilmeyeceğini değerlendirir. Geçerli sorumlu belirtilen kaynakta belirtilen eylem için yetkilendirilmediyse, bir SecurityException oluşturulur; aksi takdirde yürütme devam eder.


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

Aşağıdaki XML, sınıfıyla özel talep yetkilendirme yöneticisi kullanmak için gereken en düşük yapılandırmayı ClaimsPrincipalPermissionAttribute gösterir. En azından öğesinde system.identityModel<configSection> hem hem system.identityModel.services de bölümlerini bildirmeniz ve ardından yetkilendirme yöneticinizi varsayılan kimlik yapılandırması altındaki claimsAuthorizationManager<> öğesinde belirtmeniz gerekir. Bu, yetkilendirme yöneticinize varsayılan federasyon yapılandırmasından başvurulmasını sağlar. Alternatif olarak, federasyonConfiguration> öğesinin özniteliğinde yetkilendirme yöneticinizin belirtildiği kimlik yapılandırmasının< adını belirtebilirsiniz.identityConfigurationName

<?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>

Açıklamalar

, ClaimsPrincipalPermissionAttribute yapılandırılan ClaimsAuthorizationManagerkullanılarak bildirimli olarak erişim denetimi istemek için kullanılır.

Bildiriminizde ClaimsPrincipalPermissionAttribute a ve Operation değerlerinden Resource birini SecurityAction belirtmelisiniz. Resource ve Operation özellikleri, yürütmenin devam etmesi için geçerli sorumlunun (Thread.CurrentPrincipal) yetkilendirildiği kaynağı ve eylemi belirtir. Geçerli sorumlu belirtilen kaynakta belirtilen eylemi (işlemi) gerçekleştirme yetkisine sahip değilse, bir SecurityException oluşturulur.

Önemli

sınıfı, ClaimsPrincipalPermissionAttribute özelliği altında ayarlanan tarafından IdentityConfiguration yapılandırılan talep yetkilendirme yöneticisini FederatedAuthentication.FederationConfiguration kullanır. Bu, WS-Federation kullanılmadığı senaryolarda bile her durumda geçerlidir; örneğin, etkin (WCF) Web uygulamaları ve Konsol uygulamaları. Talep yetkilendirme yöneticisini yapılandırmada veya program aracılığıyla belirtebilirsiniz. Bir yapılandırma dosyasında talep yetkilendirme yöneticisini belirtmek için, claimsAuthorizationManager> öğesini bir identityConfiguration öğesi altında ayarlayın< ve bu kimlik yapılandırmasına çalışma zamanı tarafından yüklenen federationConfiguration> öğesi tarafından< başvurulmasını sağlayın (örneğin, özniteliğini identityConfigurationName ayarlayarak).>< Talep yetkilendirme yöneticisini program aracılığıyla ayarlamak için olay için FederatedAuthentication.FederationConfigurationCreated bir işleyici sağlayın.

Oluşturucular

Name Description
ClaimsPrincipalPermissionAttribute(SecurityAction)

ClaimsPrincipalPermissionAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
Action

Bir güvenlik eylemi alır veya ayarlar.

(Devralındığı yer: SecurityAttribute)
Operation

Geçerli sorumlunun belirtilen kaynakta yetkilendirilmesi gereken işlemi alır veya ayarlar.

Resource

Sorumlunun belirtilen eylemi (işlemi) gerçekleştirme yetkisine sahip olması gereken kaynağı alır veya ayarlar.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)
Unrestricted

Özniteliği tarafından korunan kaynağa yönelik tam (kısıtlanmamış) iznin bildirilip bildirilmediğini belirten bir değer alır veya ayarlar.

(Devralındığı yer: SecurityAttribute)

Yöntemler

Name Description
CreatePermission()

Geçerli örneği ClaimsPrincipalPermission temel alan sınıfın yeni örneğini oluşturur.

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğin karma kodunu döndürür.

(Devralındığı yer: Attribute)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.