次の方法で共有


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 示しています。 少なくとも、 要素の セクションと セクション<configSection>の両方system.identityModelsystem.identityModel.services宣言し、既定の ID 構成で claimsAuthorizationManager> 要素に<承認マネージャーを指定する必要があります。 これにより、承認マネージャーが既定のフェデレーション構成から参照されるようになります。 または、federationConfiguration 要素の属性でidentityConfigurationName承認マネージャーを指定する ID 構成の名前を<指定することもできます。>

<?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 1 つ、および Resource を指定するOperationClaimsPrincipalPermissionAttribute必要があります。 プロパティと Operation プロパティはResource、実行を続行するために現在のプリンシパル (Thread.CurrentPrincipal) を承認する必要があるリソースとアクションを指定します。 現在のプリンシパルが、指定したリソースに対して指定したアクション (操作) を実行する権限がない場合は、 SecurityException がスローされます。

重要

クラスは ClaimsPrincipalPermissionAttribute 、 プロパティの下に設定されている によって IdentityConfiguration 構成されたクレーム承認マネージャーを FederatedAuthentication.FederationConfiguration 使用します。 これは、WS-Federation が使用されないシナリオでも、すべての場合に当てはまります。たとえば、アクティブ (WCF) Web アプリケーションやコンソール アプリケーションなどです。 要求承認マネージャーは、構成で指定することも、プログラムで指定することもできます。 構成ファイルでクレーム承認マネージャーを指定するには、identityConfiguration> 要素の下に claimsAuthorizationManager 要素を<設定<し、この ID 構成がランタイムによって読み込まれる 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)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

(継承元 Attribute)

適用対象

こちらもご覧ください