如何使用 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();
}
}