我正在为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");
}
使用指令有问题吗?或者是否有其他可能来检查用户的角色?
非常感谢。
答案 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中使用的更好方法。
我希望这可以帮到你。