Windows のユーザーとパスワードの検証。
以前、SecureString で怪しげなことを書いていますが、ユーザーとパスワードの検証だけであれば、PrincipalContext を使用することで検証できるようです。
- 事前準備
System.DirectoryServices.AccountManagement を参照設定し、import する。
- ローカルアカウントの場合
Dim p = New PrincipalContext(ContextType.Machine) MsgBox(p.ValidateCredentials("username", "password"))
- ドメイン (Active Directory) アカウントの場合
Dim p = New PrincipalContext(ContextType.Domain) MsgBox(p.ValidateCredentials("username", "password"))
参加ドメインや自マシンに対する検証は上記で OK ですが、参加以外のドメインや他マシンのアカウントの検証を行う場合は、PrincipalContext コンストラクタの第二引数にコンピューター名等を指定します。