我正在尝试找到代码here。
我收到以下编译时错误:
当前上下文中不存在名称“p”
这是我的代码......有人可以帮忙吗?谢谢。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;
public static List<string> GetGroups()
{
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
using (p = Principal.FindByIdentity(ctx, "yourUserName"))
{
var groups = p.GetGroups();
using (groups)
{
foreach (Principal group in groups)
{
Console.WriteLine(group.SamAccountName + "-" + group.DisplayName);
}
}
}
}
}
答案 0 :(得分:3)
您永远不会声明p
。您需要将代码更改为:
// Add a "var" below
using (var p = Principal.FindByIdentity(ctx, "yourUserName"))
答案 1 :(得分:1)
您需要为变量p
定义类型:
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
using (Principal p = Principal.FindByIdentity(ctx, "yourUserName"))
{
var groups = p.GetGroups();
foreach (Principal group in groups)
{
Console.WriteLine(group.SamAccountName + "-" + group.DisplayName);
}
}
PS:对不起,您使用的代码是我在回答另一个问题时创建的 - 我在那里遇到了这个错误。对不起 - 现在已经修好了。谢谢你指出来了!
答案 2 :(得分:1)
您永远不会声明p
。
试试这个:
using (var p = Principal.FindByIdentity(ctx, "yourUserName"))