【发布时间】:2016-02-20 05:14:49
【问题描述】:
您好,我需要检查 DirectoryEntry 是否是 AD 中 Group 的最后一个。我不知道为什么,但我的老板说他想要一个 Messagebox。下面的方法只是我大项目的一小部分。它能做什么?我在 AD 中获取一个组的所有用户。每个用户都保存在DirectoryEntry 中。然后我打电话给其他一些东西。这与此问题无关,请参阅“Do Stuff if de”。
我不知道如何获取最后一个元素,这就是我放这个的原因:
var lastelement = users.LastElement;
在方法中。
private void Abgleich()
{
log.Debug("Abgleich in ActivDirectory aufgerufen");
using (var context = new PrincipalContext(ContextType.Domain, Properties.Settings.Default.Servername, Properties.Settings.Default.Container))
{
using (var group = GroupPrincipal.FindByIdentity(context, Properties.Settings.Default.ECADGruppe))
{
if (group == null)
{
log.Error("Group does not exist");
}
else
{
var users = group.GetMembers(true);
//Pseudo Code
var lastelement = users.LastElement;
//End Pseudo Code
foreach (UserPrincipal user in users)
{
DirectoryEntry de = (user.GetUnderlyingObject() as DirectoryEntry);
// Do Stuff if de
if (de == lastelement)
{
XtraMessageBox.Show("This is the last", "Remember", MessageBoxButtons.YesNo, MessageBoxIcon.Info);
}
}
}
}
}
}
【问题讨论】:
-
嗨,弗洛里安,“lastelement”是什么意思?它是最新创建的条目吗?如果它是目录条目的特定属性,那么看看这个问题的答案:stackoverflow.com/questions/2228468/…
-
例如在组中是在呼叫AD中的100个用户的那一刻。一个月后,AD 组中有 110 个用户。最后,我指的是第 100 个或第 110 个用户。组的最后一个用户。 foreach 的最后一个目标。
-
这样您就可以为
users拨打last()。我将发布一个示例 -
@Koryu 用户只有 Dispose、Equals、GetEnumerator、GetHashcode、GetType 和 ToString
标签: c# foreach active-directory directoryentry groupprincipal