检查 DirectoryEntry 是否是 Active Directory C# 中组的最后一个
Check if a DirectoryEntry is the last of a Group in Active Directory C#
你好,我需要检查一个DirectoryEntry
是否是AD组的最后一个。我不知道为什么,但我的老板说他想要一个 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);
}
}
}
}
}
}
有多种方法可以找到集合中的最后一个对象。
Note: Intellisense won't show all methods if you use var instead of
classname in declarations.
一种方法是将集合的最后一个对象存储在变量中
PrincipalSearchResult<Principal> users = group.GetMembers(true);
UserPrincipal lastuser = (UserPrincipal)users.Last();
foreach (UserPrincipal user in users)
{
//...
if (user == lastuser)
{
// Messagebox
}
}
其他选项是使用迭代变量
for (int i = 0; i < users.Count(); i++)
{
if (i == users.Count())
{
// .. last user
}
}
你好,我需要检查一个DirectoryEntry
是否是AD组的最后一个。我不知道为什么,但我的老板说他想要一个 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);
}
}
}
}
}
}
有多种方法可以找到集合中的最后一个对象。
Note: Intellisense won't show all methods if you use var instead of classname in declarations.
一种方法是将集合的最后一个对象存储在变量中
PrincipalSearchResult<Principal> users = group.GetMembers(true);
UserPrincipal lastuser = (UserPrincipal)users.Last();
foreach (UserPrincipal user in users)
{
//...
if (user == lastuser)
{
// Messagebox
}
}
其他选项是使用迭代变量
for (int i = 0; i < users.Count(); i++)
{
if (i == users.Count())
{
// .. last user
}
}