【发布时间】:2018-07-27 18:25:51
【问题描述】:
我正在编写一个 C# 应用程序来显示用户提供的安全组中的用户。似乎我所有的测试用例都有效,除非我搜索“域用户”。当我这样做时,姓氏或 GivenName 都不会返回值。所有其他组返回这些值。我被难住了。
测试 1:域管理员
结果:所有 Surname 和 GivenName 显示在 GridView 中
测试 2:域用户
结果:没有显示姓氏或名字
注意:如果我将属性更改为任何其他 AD 用户属性,例如名称、SAM 等,所有这些都可以正常显示。
namespace adsearch
{
public partial class frmViewGroupMembers : Form
{
private string group;
private DataTable GroupMembers = new DataTable();
public frmViewGroupMembers()
{
InitializeComponent();
}
public void ShowGroupMembers(string groupName) {
GroupMembers.Columns.Add("Last Name");
GroupMembers.Columns.Add("First Name");
using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "mydomain.local")) {
using (GroupPrincipal group = GroupPrincipal.FindByIdentity(context, groupName))
{
foreach (UserPrincipal user in group.GetMembers(true).OfType<UserPrincipal>())
{
GroupMembers.Rows.Add(user.Surname, user.GivenName);
}
}
}
dgvGroupMembers.DataSource = GroupMembers;
dgvGroupMembers.Sort(dgvGroupMembers.Columns[0], ListSortDirection.Ascending);
this.Show();
}
}
}
【问题讨论】:
标签: c# active-directory