共用方式為


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
屬性

範例

下列範例示範如何使用 屬性裝飾 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> 元素中<指定授權管理員。 這可確保從預設同盟組態參考您的授權管理員。 或者,您也可以指定在 federationConfiguration> 元素的< 屬性中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>  

備註

ClaimsPrincipalPermissionAttribute用來以宣告方式使用設定的 ClaimsAuthorizationManager來要求存取檢查。

您必須在宣告中指定其中一個SecurityAction值,Resource以及 OperationClaimsPrincipalPermissionAttribute ResourceOperation 屬性會指定目前主體 () Thread.CurrentPrincipal 必須獲得授權才能繼續執行的資源和動作。 如果目前的主體未獲授權在指定的資源上執行指定的動作 (作業) , SecurityException 則會擲回 。

重要

類別 ClaimsPrincipalPermissionAttribute 會使用 屬性下所設定的 IdentityConfigurationFederatedAuthentication.FederationConfiguration 宣告授權管理員。 在所有情況下都是如此,即使在未使用 WS-Federation 的情況下也是如此;例如,作用中 (WCF) Web 應用程式和控制台應用程式。 您可以在組態中或以程序設計方式指定宣告授權管理員。 若要在組態檔中指定宣告授權管理員,請在 identityConfiguration> 元素下<設定 <claimsAuthorizationManager> 元素,並確定運行時間 (所載入的 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)

將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。

(繼承來源 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

擷取物件的類型資訊,可以用來取得介面的類型資訊。

(繼承來源 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

擷取物件提供的類型資訊介面數目 (0 或 1)。

(繼承來源 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供物件所公開的屬性和方法的存取權。

(繼承來源 Attribute)

適用於

另請參閱