[英]How do I get all Roles for current User?
我正在为WPF应用程序开发业务逻辑。 在应用程序启动之前,我必须证明CurrentUser是否在特殊域的ActiveDirectory中,如果他在其中,则必须找出当前用户在哪个角色中。 当前用户及其在AD中的存在状况都很好,但是我很难找出角色。
我已经尝试过:
using System.Web.Security;
Roles.GetRolesForUser(currentuser);
但是问题是,我必须启用角色管理,所以我在代码上方写了:
Roles.Enabled = true;
但是仍然存在问题-> System.InvalidOperationException;
这是整个代码(测试版):
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");
}
using指令有问题吗? 或者还有其他可能性可以检查用户是哪个角色?
非常感谢。
如果您还使用成员资格,请尝试此操作
var user = Membership.GetUser("WhateverUsername");
string [] roles = Roles.GetRolesForUser(user.UserName);
如果没有,则只需指定用户名:
string [] roles = Roles.GetRolesForUser("WhateverUsename");
这将获取您提供的用户名的角色。 希望能帮助到你。
也许这可以帮助您: Active Directory-用户角色
在本文中,将使用System.DirectoryServices.AccountManagement-Namespace。 我认为这是WPF应用程序和Roles.GetRolesForUser的更好方法,似乎已在ASP-Web-Applications中使用。
希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.