我对 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