ClaimsPrincipalPermissionAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示在目前應用程式內容中,用來根據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 方法來保護方法。 屬性會利用應用程式內容中的 實例所提供的 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
以及 Operation
。ClaimsPrincipalPermissionAttribute Resource
和 Operation
屬性會指定目前主體 () 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) |