Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查本地用户所属的组_C#_Asp.net_Login_Usergroups - Fatal编程技术网

C# 检查本地用户所属的组

C# 检查本地用户所属的组,c#,asp.net,login,usergroups,C#,Asp.net,Login,Usergroups,我有获取本地组成员示例管理员的代码 private void GetUserGrps() { using (DirectoryEntry groupEntry = new DirectoryEntry("WinNT://./Administrators,group")) { foreach (object member in (IEnumerable)groupEntry.Invoke("Members")) { using

我有获取本地组成员示例管理员的代码

private void GetUserGrps()
{
    using (DirectoryEntry groupEntry = new DirectoryEntry("WinNT://./Administrators,group"))
    {
        foreach (object member in (IEnumerable)groupEntry.Invoke("Members"))
        {
            using (DirectoryEntry memberEntry = new DirectoryEntry(member))
            {
                new GUIUtility().LogMessageToFile(memberEntry.Path);
            }
        }
    }
是否有方法使用目录服务获取本地用户所属的组

不在其中使用Active Directory或域,因为我只想在本地计算机上使用,而不想在域上使用。

试试这个

using System.DirectoryServices.AccountManagement;

static void Main(string[] args)
{
    ArrayList myGroups = GetUserGroups("My Local User");
}
public static ArrayList GetUserGroups(string sUserName)
{
    ArrayList myItems = new ArrayList();
    UserPrincipal oUserPrincipal = GetUser(sUserName);

    PrincipalSearchResult<Principal> oPrincipalSearchResult = oUserPrincipal.GetGroups();

    foreach (Principal oResult in oPrincipalSearchResult)
    {
        myItems.Add(oResult.Name);
    }
    return myItems;
}

public static UserPrincipal GetUser(string sUserName)
{
    PrincipalContext oPrincipalContext = GetPrincipalContext();

    UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(oPrincipalContext, sUserName);
    return oUserPrincipal;
}
public static PrincipalContext GetPrincipalContext()
{
    PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Machine);
    return oPrincipalContext;
}
使用System.DirectoryServices.AccountManagement;
静态void Main(字符串[]参数)
{
ArrayList myGroups=GetUserGroups(“我的本地用户”);
}
公共静态ArrayList GetUserGroups(字符串sUserName)
{
ArrayList myItems=新建ArrayList();
UserPrincipal=GetUser(sUserName);
PrincipalSearchResult-oPrincipalSearchResult=USERPrincipal.GetGroups();
foreach(负责人或运营结果)
{
myItems.Add(oResult.Name);
}
归还我的物品;
}
公共静态用户主体GetUser(字符串sUserName)
{
PrincipalContext oPrincipalContext=GetPrincipalContext();
UserPrincipal-oUserPrincipal=UserPrincipal.FindByIdentity(oPrincipalContext,sUserName);
返回USERPRINCIPAL;
}
公共静态PrincipalContext GetPrincipalContext()
{
PrincipalContext oPrincipalContext=新PrincipalContext(ContextType.Machine);
返回上下文;
}

今天早些时候你没有问这个问题吗?--是的,但这是另一种方法。。我需要关于它的建议…目录服务与LDAP或Active Directory的使用密切相关。它不是用来在本地windows机器上循环的。@chris。。那么,如何获取本地用户的组(用户、管理员、来宾)??