Active Directory: 如何使用 ADSI (System.DirectoryServices) 來驗證本機使用者?

如何使用 ADSI 來驗證本機使用者 (在無網域的情況下)。

在大多數的情況下,ADSI都會被拿來與網域聯想在一起,但它也可以對本機中的使用者帳戶做控制,只要把它的提供者由LDAP更換成WinNT即可。

public static string ValidateUser(string ComputerName, string UserName, string Password)
{

          // 之前有一個 bug,把 bug 修掉。
    DirectoryEntry entry = new DirectoryEntry("WinNT://" + ComputerName, UserName, Password);

    try
    {
        string objectSid =
              (new SecurityIdentifier((byte[])entry.Properties["objectSid"].Value, 0).Value);
        entry.Dispose();
        return objectSid;
    }
    catch (DirectoryServicesCOMException)
    {
        return null;
    }
    finally
    {
        entry.Dispose();
    }
}