Мне нужно проверять пользователей в компании, используя только их имя пользователя - не их пароль.
Мне нужен такой метод
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;
}