2010-12-02 9 views
2

クレーム対応Webアプリケーションを使用しています。 私は、次のClaimsPrincipalPermissionを使用してADFS 2.0によって返されたクレームでクラスに注釈を付ける

Claim claim = claimsIdentity.Claims.FirstOrDefault(c => c.ClaimType 
== "http://somedomain.com/claims/MemberOfGroup" && c.Value == "domain\\test group"); 

を行い、それらを離れてリダイレクトすることができ

..特定の請求(s)が存在する場合のページへのアクセスを許可するには、カスタム属性を持つWebページをロックダウンしたいですクレームがnullの場合はページから。

しかし、どうすればこのクラスに注釈を付けることができますか?

は私がClaimsPrincipalPermission

[ClaimsPrincipalPermission(SecurityAction.Demand, Resource="", Operation="")] 

を見ていたが、私の人生のためのリソースと操作に入れてものを見ることができません。 adfsから返された申し立てをclaimsprincipalpermissionにするにはどうすればよいですか?これを行うには多くのカスタムクラスを書く必要がありますか?

おかげで、

答えて

4

あなたはClaimsAuthorizationManagerから継承し、独自の認可マネージャ・クラスを作成し、CHECKACCESS()メソッドをオーバーライドする必要があります。このメソッドは、ClaimsPrincipalPermission属性で装飾されたすべてのメソッドに対して呼び出されます。リソース文字列、操作文字列、および現在のユーザーが持つすべての要求を含むIPrincipalオブジェクトを含むAuthorizationContextオブジェクトが渡されます。このメソッドの内部では、このデータを解析して、アクセスを判断し、trueまたはfalseを返すことができます。

WIF SDKのサンプルでは、​​これを実証するClaimsAuthorizationという単純なコンソールアプリケーションプロジェクトがあります。リソースと操作を使用してアプリケーション設定ファイルを調べ、ユーザーが必要とする要求を確認し、それに応じてtrueまたはfalseを返します。もちろん、あなたはそれをする必要はありません、あなたが選択した他の論理を使用することができます。

サンプルはCの下に通常ある:\プログラムファイル(x86の)\ Windowsのアイデンティティ財団SDK \ V4.0の\サンプル拡張\クレーム\基づく認証

希望

を助けること
関連する問題