.Net中有两种不同的Claim
类型。一个在 WIF ( Microsoft.IdentityModel.Claims
) 中,一个System.IdentityModel.Claims
在 WCF pre-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
)。如果您的身份提供者在您的应用程序外部并且您无法控制它发出的声明,那么您将需要ClaimsAuthenticationManager
通过添加新的角色声明来实现自定义来转换已发布的声明集。
然后你可以装饰你想要授予访问权限的操作,PrincipalPermissionAttribute
如下所示:
[PrincipalPermission(SecurityAction.Demand, Role = "UserAdministrator")]
该框架相当灵活,可以在 ASP.Net、WCF 或常规 .Net 开发中以多种不同方式使用。您的问题没有提供很多背景信息,无法通过示例给出非常具体的答案。