【发布时间】:2009-11-04 18:43:53
【问题描述】:
我有一个应用程序,每次启动时都会检查用户是否存在(如果不创建)。这样做如下:
bool bUserExists = false;
DirectoryEntry dirEntryLocalMachine =
new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
DirectoryEntries dirEntries = dirEntryLocalMachine.Children;
foreach (DirectoryEntry dirEntryUser in dirEntries)
{
bUserExists = dirEntryUser.Name.Equals("UserName",
StringComparison.CurrentCultureIgnoreCase);
if (bUserExists)
break;
}
问题出在部署它的大多数系统上。这可能需要 6 - 10 秒,这太长了……我需要找到一种方法来减少这种情况(尽可能)。有没有一种更好或更快的方法可以用来验证系统上是否存在用户?
我知道还有其他方法可以解决这个问题,比如让其他应用程序休眠 10 秒,或者让这个工具在准备好时发送消息等等......但是如果我能大大减少它所花费的时间找到用户,这会让我的生活更轻松。
【问题讨论】:
-
您在机器上寻找本地用户吗?
-
在应用程序完成启动之前您的用户是否需要存在?
-
是的,应用程序将检查它是否存在,如果不存在则创建它......工作正常 - 唯一的问题是检查需要很长时间。
标签: c# windows active-directory