ドメイン ユーザーのユーザー名とパスワードが与えられた場合、そのユーザーをプログラムで認証する最善の方法は何でしょうか?
John Christensen
質問する
8619 次
2 に答える
17
.NET 3.5 では、この問題に対処するために新しい名前空間 System.DirectoryServices.AccountManagement が追加されたようです。コードサンプルは次のとおりです。
Private Function ValidateExternalUser(ByVal username As String, ByVal password As String) As Boolean
Using context As PrincipalContext = New PrincipalContext(ContextType.Domain, _defaultDomain)
Return context.ValidateCredentials(username, password, ContextOptions.Negotiate)
End Using
End Function
名前空間は、ドメイン アカウントを操作するための多くの方法も提供しているようです (パスワードの変更、パスワードの期限切れなど)。
于 2008-08-28T16:06:26.050 に答える
9
認証のみにいくつかのハックを使用できます。
Try
Dim directoryEntry as New DirectoryEntry("LDAP://DomainController:389/dc=domain,dc=suffix", "username", "password")
Dim temp as Object = directoryEntry.NativeObject
return true
Catch
return false
End Try
ユーザーが有効でない場合、ディレクトリ エントリ NativeObject にアクセスできず、例外がスローされます。これは最も効率的な方法ではありませんが (例外は悪いことです)、迅速で簡単です。これには、AD だけでなく、すべての LDAP サーバーで動作するという非常に優れた利点もあります。
于 2008-08-28T04:21:26.090 に答える