Active Directory に対してユーザー名とパスワードを検証するにはどうすればよいですか? ユーザー名とパスワードが正しいかどうかを確認したいだけです。
ベストアンサー1
.NET 3.5 以降を使用している場合は、System.DirectoryServices.AccountManagement
名前空間を使用して資格情報を簡単に確認できます。
// create a "principal context" - e.g. your domain (could be machine, too)
using(PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOURDOMAIN"))
{
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "mypassword");
}
シンプルで信頼性が高く、100% C# マネージ コードなので、これ以上何を求めることができますか? :-)
詳細はこちらをご覧ください:
- .NET Framework 3.5 でのディレクトリ セキュリティ プリンシパルの管理
- System.DirectoryServices.AccountManagement に関する MSDN ドキュメント
アップデート:
概説されているようにこの他のSOの質問(およびその回答)ただし、この呼び出しではユーザーの古いパスワードが返される可能性があるという問題がありますTrue
。この動作に注意し、このようなことが起きても驚かないでください :-) (この点を指摘してくれた @MikeGledhill に感謝します!)