2

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);
}
4

2 に答える 2

-1
try{    
var userName = "bob";
    using (var pc = new PrincipalContext(ContextType.Domain)
    {
          var user = UserPrincipal.FindByIdentity(pc, userName);
          user.ChangePassword(oldpassword, newpassword); //Checks password policy
          //or
          user.SetPassword(newpassword); //Not positive checks password policy but I believe it 2.
    }
}
catch(PasswordException ex)
{
//do something with ex
}
于 2014-01-28T16:29:30.710 に答える