您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“VB.NET如何驗證LDAP用戶身份”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“VB.NET如何驗證LDAP用戶身份”這篇文章吧。
首先,我要講的LDAP不是微軟的Active Directory目錄服務,而是運行在SUN One上面的目錄服務。
請看VB.NET驗證LDAP用戶身份的代碼(部分敏感信息刪節):
Private Sub btnTest_Click()Sub btnTest_
Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
btnTest.Click
Dim LoginName As String = txtUser.Text
Dim LoginPwd As String = txtPwd.Text
If LoginPwd = "" Then
txtResult.Text = "* Password can not be blank."
Exit Sub
End If
Dim myDirectorySearcher As DirectorySearcher
Dim mySearchResult As SearchResult
Dim myDirectoryEntry As DirectoryEntry
Dim UserName As String
txtResult.Text = ""
Try
If myDirectoryEntry.Exists("LDAP:
//ldapserver.com/uid=" & LoginName & ",
ou=people,ou=intranet,dc=yourdomainname,
dc=com") Then
Try
myDirectoryEntry = New DirectoryEntry
("LDAP://ldapserver.com/ou=people,
ou=intranet,dc=yourdomainname,dc=com",
"uid=" & LoginName & ",ou=people,ou=intranet,
dc=yourdomainname,dc=com", LoginPwd,
AuthenticationTypes.ServerBind)
myDirectorySearcher = New Directory
Searcher(myDirectoryEntry)
myDirectorySearcher.Filter = "
(uid=" & txtUser.Text & ")"
myDirectorySearcher.PropertiesToLoad.
Add("DisplayLastName")
myDirectorySearcher.PropertiesToLoad.
Add("DisplayFirstName")
mySearchResult = myDirectorySearcher.FindOne
If mySearchResult Is Nothing Then
txtResult.Text += "* Login failed."
Else
txtResult.Text += ">>> Login passed!" & vbCrLf
UserName = mySearchResult.GetDirectory
Entry().Properties("DisplayFirstName").
Value & " " & mySearchResult.GetDirectory
Entry().Properties("DisplayLastName").Value
txtResult.Text += UserName & vbCrLf
End If
Catch ex As Exception
txtResult.Text += "* Login failed." &
vbCrLf & ex.Message
End Try
Else
txtResult.Text += "* Invalid user login name."
End If
Catch ex As Exception
txtResult.Text += "* Can not access the
LDAP server." & vbCrLf & ex.Message
End Try
End Sub
這里要說明一下:
1、必須檢驗密碼不能為空,否則會造成驗證有誤,即空密碼能通過驗證,不知道為什么。
2、LDAP://......這最前面的四個字母LDAP必須大寫!否則報未知錯誤,不知道為什么,還得我走了一段彎路。
3、ldapserver.com需要替換成LDAP服務器的地址。
4、LDAP://......地址后面的參數,要根據你要訪問的LDAP的設置而定。
5、如果密碼不對,會引發異常,所以我在異常處理中捕獲,但是不知道這樣是否正確。
6、If mySearchResult Is Nothing Then 這句我覺得是廢話,好像怎么也不會為True,如果密碼不對,會引發異常的,但是不放心還是加上這句,可能是我的判斷邏輯有問題。
以上是“VB.NET如何驗證LDAP用戶身份”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。