通过 c#/.Net 从 AD 中检索特定用户详细信息
Retrieving specific user details from AD via c#/.Net
我正在尝试为特定广告组中的用户检索 SamAccountName
、Surname
、GivenName
使用:
PrincipalContext principalContext = new PrincipalContext(ContextType.Domain);
GroupPrincipal group = GroupPrincipal.FindByIdentity(principalContext, adgroup);
foreach (Principal principal in group.Members)
{
samName = principal.SamAccountName;
surName = principal.SurName; <-- Intellisense gives error
givenName = principal.GivenName; <-- Intellisense gives error
}
当我逐步执行代码并在 Visual Studio 中添加监视时,它们显示了正确的信息,但是 principal.Surname
和 principal.GivenName
在编译时给出了以下错误:
'Principal' 不包含“____”的定义,也找不到扩展方法
谁能解释一下为什么我在 IDE 中使用代码破解并悬停在 principal
变量上时可以看到信息,但无法访问代码中的属性?
根据 docs,SurName
和 GivenName
不是 public 类型 Principal
的属性
看起来您需要 UserPrincipal
class 来公开这些属性,请参阅 UserPrincipal documentation
我现在无法100%验证,但我想如果你改变
foreach (Principal principal in group.Members)
到
foreach (UserPrincipal principal in group.Members)
它应该有效
校长 class 没有 属性 姓氏或名字
https://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principal(v=vs.110).aspx
我正在尝试为特定广告组中的用户检索 SamAccountName
、Surname
、GivenName
使用:
PrincipalContext principalContext = new PrincipalContext(ContextType.Domain);
GroupPrincipal group = GroupPrincipal.FindByIdentity(principalContext, adgroup);
foreach (Principal principal in group.Members)
{
samName = principal.SamAccountName;
surName = principal.SurName; <-- Intellisense gives error
givenName = principal.GivenName; <-- Intellisense gives error
}
当我逐步执行代码并在 Visual Studio 中添加监视时,它们显示了正确的信息,但是 principal.Surname
和 principal.GivenName
在编译时给出了以下错误:
'Principal' 不包含“____”的定义,也找不到扩展方法
谁能解释一下为什么我在 IDE 中使用代码破解并悬停在 principal
变量上时可以看到信息,但无法访问代码中的属性?
SurName
和 GivenName
不是 public 类型 Principal
的属性
看起来您需要 UserPrincipal
class 来公开这些属性,请参阅 UserPrincipal documentation
我现在无法100%验证,但我想如果你改变
foreach (Principal principal in group.Members)
到
foreach (UserPrincipal principal in group.Members)
它应该有效
校长 class 没有 属性 姓氏或名字 https://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principal(v=vs.110).aspx