WinNT всегда аутентифицирует локального пользователя в True (NativeObject никогда не ошибается) - PullRequest
0 голосов
/ 01 февраля 2012

Я читал, что приведенный ниже код является способом аутентификации пользователя по WinNT.Я пытался аутентифицировать пользователя на моей локальной машине.По какой-либо причине root.NativeObject никогда не создает исключение, если пароль или имя пользователя моего локального пользователя правильный или нет.Есть идеи, в чем может быть проблема?

try
{
  using (var root = new DirectoryEntry("WinNT://" + _root, domainAndUsername, _password))
  {
     var root = root.NativeObject;
  }
}
catch
{
  return false;
}

1 Ответ

0 голосов
/ 01 февраля 2012

Если вы хотите пройти аутентификацию в Active-Directory (как указано в ваших тегах), вы можете проверить:

try
{
  using (var root = new DirectoryEntry("LDAP://societe.fr/dc=societe,dc=fr", domainAndUsername, _password))
  {
     var root = root.NativeObject;
  }
}
catch
{
  return false;
}

Вы можете использовать WinNT для добавления локального пользователя (SAM) на компьютер, как показано ниже, но в этом случае вы вошли на этот компьютер как администратор.

DirectoryEntry deComputer = new DirectoryEntry("WinNT://JPBASUSF1,computer");
DirectoryEntry deUser = deComputer.Children.Add("JPB", "user");
deUser.Invoke("SetPassword", new object[] { "test.2011" }); 
deUser.Properties["Description"].Add("user $userName");
deUser.Properties["userflags"].Add(512);
deUser.Properties["passwordExpired"].Add(1);
deUser.Properties["LoginScript"].Add("start.cmd");
deUser.CommitChanges();
...