繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM