Claim
.Net には 2 つの異なるタイプがあります。1 つは WIF ( Microsoft.IdentityModel.Claims
) にあり、もう 1 つSystem.IdentityModel.Claims
は WCF 以前の WIF で使用されていました (ただし、実際には WCT の一部ではありません)。あなたが言及したように、だけSystem.IdentityModel.Claims.Claim
がプロパティを持っています。Right
私は WCF と ASP.Net でクレーム アプローチを使用し、WIF を使用した場合と使用しなかった場合を比較しましたが、WIF プログラミング モデルの方が間違いなくシンプルです。
あなたが説明するユーザー編集シナリオでは、適切な名前の役割を定義します。UserEditor は問題ないかもしれませんが、非常に具体的に聞こえます。これらのユーザーに付与するすべてのアクセス許可のコレクションを調べて、適切な要約名 (おそらく UserAdministrator?) を考え出す必要があります。
これらのユーザーについては、ロール クレーム (つまり、タイプhttp://schemas.microsoft.com/ws/2008/06/identity/claims/roleまたはMicrosoft.IdentityModel.Claims.ClaimTypes.Role
) を追加する必要があります。ID プロバイダーがアプリケーションの外部にあり、それが発行するクレームを制御できない場合はClaimsAuthenticationManager
、新しいロール クレームを追加して、発行されたクレーム セットを変換するカスタムを実装する必要があります。
次に、アクセスを許可する操作を次のように装飾できますPrincipalPermissionAttribute
。
[PrincipalPermission(SecurityAction.Demand, Role = "UserAdministrator")]
このフレームワークは非常に柔軟で、ASP.Net、WCF、または通常の .Net 開発でさまざまな方法で使用できます。あなたの質問は、例を含む非常に具体的な回答を可能にするための多くのコンテキストを提供していません。