如何获得当前用户的所有角色?

时间:2014-02-11 09:48:40

标签: c# wpf active-directory roles

我正在为WPF应用程序开发业务逻辑。在应用程序启动之前,我必须证明CurrentUser是否在特殊域的ActiveDirectory中,如果他在那里,我必须找出当前用户的角色。目前的用户和他在AD的存在工作正常,但我有问题找出角色。

我试过了:

using System.Web.Security;

Roles.GetRolesForUser(currentuser);

但问题是,我必须启用角色管理,所以我在代码上面写了:

Roles.Enabled = true;

但它仍有问题 - > System.InvalidOperationException;

这是整个代码(testversion):

string currentuser = Environment.UserName;
string currentmachine = Environment.MachineName;

if (DirectoryEntry.Exists(string.Format("WinNT://{0}/{1}", currentmachine,  currentuser)))
{
    Console.WriteLine("it's working\n");


    Roles.Enabled = true;
    Console.WriteLine(Roles.GetRolesForUser(currentuser));
}
else
{
    Console.WriteLine("it's not working");
}

使用指令有问题吗?或者是否有其他可能来检查用户的角色?

非常感谢。

2 个答案:

答案 0 :(得分:0)

如果您还使用会员资格

,请尝试此操作
var user = Membership.GetUser("WhateverUsername");
string [] roles = Roles.GetRolesForUser(user.UserName);

如果没有,那么只需指定用户名:

string [] roles = Roles.GetRolesForUser("WhateverUsename");

这将获取您提供的用户名的角色。希望它有所帮助。

答案 1 :(得分:0)

也许这可以帮到你:Active Directory - Roles of a user

在这篇文章中,使用了System.DirectoryServices.AccountManagement-Namespace。 我认为这是WPF-Application和Roles.GetRolesForUser似乎在ASP-Web-Applications中使用的更好方法。

我希望这可以帮到你。