我正在编写安装SQL的安装程序,事先提示用户输入将为其创建的SA用户名/密码 . 安装SQL时,它会根据Active Directory策略验证此密码,如果不匹配则会失败 .
我想要做的是在继续安装SQL之前验证用户输入的密码是否有效 .
如何根据Active Directory规则验证密码是否正确?
注意我没有登录来验证answer,而只是验证密码 .
我目前正在尝试这个,但是我知道不允许写“密码”不会引发异常
try
{
System.DirectoryServices.DirectoryEntry localMachine = new System.DirectoryServices.DirectoryEntry("WinNT://" + Environment.MachineName);
ListPasswordPolicyInfo(Environment.MachineName);
System.DirectoryServices.DirectoryEntry newUser = localMachine.Children.Add("localuser", "user");
newUser.Invoke("SetPassword", new object[] { "3l!teP@$$w0RDz" });
newUser.Invoke("SetPassword", new object[] { "password" });
//newUser.CommitChanges();
//Console.WriteLine(newUser.Guid.ToString());
localMachine.Close();
newUser.Close();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
2 回答
经过很多痛苦后,我使用
NetValidatePasswordPolicy
找到了C#解决方案 . 使用PInvoke的支持结构和以下代码