2

刚刚开始掌握 WCF 安全性。如何在服务中列出用户的角色?

例如

// 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 )
    {
    }
}

谢谢

4

2 回答 2

2

在处理 Windows 组时,您可以使用以下代码:

foreach (IdentityReference idRef in WindowsIdentity.GetCurrent().Groups)
{
    Console.WriteLine(idRef.Translate(typeof(NTAccount)).Value);
}
于 2009-03-30T13:38:56.153 回答
2

.NET 中基于角色的安全基础架构(即 IPrincipal)不允许获取用户的所有角色。您只能查询用户是否处于特定角色(通过 IPrincipal.IsInRole("role-name"))。

但是,如果您不介意被绑定到特定的身份验证/授权设置,则有一些解决方案。例如,另一位发帖人指出了如何在使用 Windows 身份验证时获取用户的角色。

于 2009-03-30T14:40:12.620 回答