私はADについてあまり知りませんが、これが私がやろうとしていることであり、私が聞いている方向性です.
メール フィールドに電子メール アドレスを含む Active Directory のユーザーがいます。メールアドレスまたは通常のログインのいずれかを使用して、サイトにログインできるようにしたいと考えています。私のVBコードは、電子メールとしてフォーマットされていないテキストを入力して直接ログインするかどうか、または電子メールアドレスとしてフォーマットされているかどうかをチェックし、そのアドレスを使用して舞台裏でログインを検索します.
DirectorySearcher が適していると聞いたことがありますが、それを実装することはできませんでした。ご支援いただければ幸いです。
Dim theUser As String = String.Empty
Dim strDomain As String = "DEV"
Dim directoryEntryMTA As String = "LDAP://dc=dev,dc=ad,dc=mtaaccount"
If Not String.IsNullOrEmpty(txtUsername.Text) Then
If txtUsername.Text.IndexOf("@") > -1 Then
Dim entry As New DirectoryEntry(directoryEntryMTA)
Dim search As New DirectorySearcher(entry)
search.Filter = "mail=" & txtUsername.Text
search.PropertiesToLoad.Add("SAMAccountName")
Dim result As SearchResult = search.FindOne()
If result IsNot Nothing Then
theUser = strDomain + "\" + result.ToString()
Else
' ADD CODE IF DIRECTORY SEARCHER DOES NOT FIND ANY USER WITH SUPPLIED EMAIL
End If
Else
theUser = strDomain + "\" + txtUsername.Text
End If
End If