如何列出 WCF 服务中请求用户的角色?

发布于 2024-07-15 23:05:35 字数 312 浏览 8 评论 0原文

刚刚开始掌握 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 )
    {
    }
}

谢谢

Just started getting to grips with WCF security. How do I list a user's roles at the service?

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

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云胡 2024-07-22 23:05:35

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

foreach (IdentityReference idRef in WindowsIdentity.GetCurrent().Groups)
{
    Console.WriteLine(idRef.Translate(typeof(NTAccount)).Value);
}

When dealing with Windows groups you can use this code:

foreach (IdentityReference idRef in WindowsIdentity.GetCurrent().Groups)
{
    Console.WriteLine(idRef.Translate(typeof(NTAccount)).Value);
}
静水深流 2024-07-22 23:05:35

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

但是,如果您不介意受特定身份验证/授权设置的束缚,可以使用一些解决方案。 例如,另一位发帖者指出了使用 Windows 身份验证时如何获取用户的角色。

The role-based security infrastructure in .NET (ie IPrincipal) doesn't allow fetching all of a user's roles. You can only inquire whether a user is in a specific role (via IPrincipal.IsInRole("role-name")).

However, there are solutions if you don't mind being tied to a particular authentication/authorization setup. For example, another poster pointed out how to get the user's roles when using Windows authentication.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文