WinNT始终将本地用户身份验证为True(NativeObject从不出错)
本文关键字:NativeObject True 出错 身份验证 用户 WinNT | 更新日期: 2023-09-27 18:22:00
我已经读到以下代码是针对WinNT对用户进行身份验证的方法。我一直在尝试对本地计算机上的用户进行身份验证。无论出于何种原因,无论我的本地用户的密码或用户名是否正确,root.NativeObject
都从不抛出异常。你知道问题出在哪里吗?
try
{
using (var root = new DirectoryEntry("WinNT://" + _root, domainAndUsername, _password))
{
var root = root.NativeObject;
}
}
catch
{
return false;
}
如果您想根据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();