如何针对Active Directory验证用户名和密码?我只是想检查用户名和密码是否正确.
我需要获取运行安装程序的用户的用户名以进行自定义安装操作.因为安装程序获得特殊权限,所以Environment.UserName只提供"SYSTEM".
Environment.SpecialFolders.ApplicationData返回当前用户appdata文件夹,但我无法可靠地挖掘用户名.
更多案例细节:
使用Visual Studio 2008安装项目自定义操作是安装后运行的安装程序类,是项目中唯一的安装程序类.
我正在编写安装SQL的安装程序,事先提示用户输入将为其创建的SA用户名/密码.安装SQL时,它会根据Active Directory策略验证此密码,如果不匹配则会失败.
我想要做的是在继续安装SQL之前验证用户输入的密码是否有效.
如何根据Active Directory规则验证密码是否正确?
注意我没有登录来验证这个答案,而只是验证密码.
我目前正在尝试这个,但是我知道不允许写"密码"不会引发异常
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);
}
Run Code Online (Sandbox Code Playgroud)