Мне нужно проверить пользователей в компании, используя только их имя пользователя, а не пароль.
Так что мне нужен такой метод
public bool UserExists(string username)
{ ... }
Мне известно о пространстве имен System.DirectoryServices
, но я не знаю, с чего начать.
Есть идеи?
Есть более 80 000 записей, поэтому постарайтесь учесть это.
Спасибо.
Редактировать:
Я сделал это - мой код:
private bool UserExists(string userName, string domain)
{
try
{
DirectoryEntry.Exists("WinNT://" + domain + ".[hidden].com/" + userName);
return true;
}
catch (COMException)
{
return false;
}
}
Я не знаю, правильно ли это, но, похоже, это пока работает.
Ответ Михаила состоит из двух частей:
Обновление № 2:
Я действительно использовал это:
public static bool LoggedOnUserExists()
{
var domain = new PrincipalContext(ContextType.Domain);
UserPrincipal foundUser = UserPrincipal.FindByIdentity(domain, IdentityType.SamAccountName, Environment.UserName);
return foundUser != null;
}