刚刚开始掌握WCF安全性。如何在服务中列出用户的角色?
E.g。
// Could use declarative security here, i.e. using PrincipalPermission attribute
public string MyService()
{
// Would like some code that does something like:
foreach( Role role in CurrentUser.Roles )
{
}
}
由于
答案 0 :(得分:2)
处理Windows群组时,您可以使用以下代码:
foreach (IdentityReference idRef in WindowsIdentity.GetCurrent().Groups)
{
Console.WriteLine(idRef.Translate(typeof(NTAccount)).Value);
}
答案 1 :(得分:2)
.NET中基于角色的安全基础结构(即IPrincipal)不允许获取用户的所有角色。您只能查询用户是否处于特定角色(通过IPrincipal.IsInRole(“role-name”))。
但是,如果您不介意与特定的身份验证/授权设置绑定,则可以使用解决方案。例如,另一张海报指出了在使用Windows身份验证时如何获取用户的角色。