ユーザーが存在することを認証した後、LDAP を使用して AD からユーザーの詳細を返すのに苦労しています。次のように単純な認証方法を使用しています。
Function AuthenticateUser(path As String, user As String, pass As String) As Boolean
Dim de As New DirectoryEntry(path, user, pass, AuthenticationTypes.Secure)
Try
Dim ds As DirectorySearcher = New DirectorySearcher(de)
Dim result As SearchResult = ds.FindOne()
If result Is Nothing Then Return False
'>>DEBUG OUTPUTS ONLY:
displayName.Text = result.GetDirectoryEntry().Properties.Item("distinguishedName").Value
displayName.Text += result.GetDirectoryEntry().Properties("name").Value
Return True
Catch
Return False
End Try
End Function
問題は、「distinguishedName」が「DC=our-domain,DC=co,DC=uk」を返し、「name」が認証されたばかりのユーザーの名前ではなく、「our-domain」のみを返すことです。
注: displayName.text の出力は純粋にデバッグ用です。
さまざまなリクエストの組み合わせを試しましたが、ユーザーの詳細が返されないようです。
ETA: セキュリティ警察へ: これはすべて https 接続内で行われます。パスワードをプレーン テキストで送信するつもりはありません。