成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入剖析VB.NET驗證LDAP用戶身份

開發 后端
當我們想在程序代碼中實現VB.NET驗證LDAP用戶身份的時候,可以通過以下介紹的內容來逐步的完成。在這里就為大家詳細介紹一下。

VB.NET對于開發人員來說是一個功能非常強大的開發語言。它的功能特點非常突出,比如不能夠提供一個安全性非常高的開發環境等。前幾天花了兩天時間研究如何實現VB.NET驗證LDAP用戶身份,看了一些java和vb的代碼,碰了不少釘子,試驗再試驗,終于搞定,與大家分享... #t#

首先,我要講的LDAP不是微軟的Active Directory目錄服務,而是運行在SUN One上面的目錄服務。

請看VB.NET驗證LDAP用戶身份的代碼(部分敏感信息刪節):

  1. Private Sub btnTest_Click()Sub btnTest_
    Click(ByVal sender As System.Object, 
    ByVal e As System.EventArgs) Handles 
    btnTest.Click  
  2. Dim LoginName As String = txtUser.Text  
  3. Dim LoginPwd As String = txtPwd.Text  
  4. If LoginPwd = "" Then  
  5. txtResult.Text = "* Password can not be blank." 
  6. Exit Sub  
  7. End If  
  8. Dim myDirectorySearcher As DirectorySearcher  
  9. Dim mySearchResult As SearchResult  
  10. Dim myDirectoryEntry As DirectoryEntry  
  11. Dim UserName As String  
  12. txtResult.Text = "" 
  13. Try  
  14. If myDirectoryEntry.Exists("LDAP:
    //ldapserver.com/
    uid=" & LoginName & ",
    ou=people,ou=intranet,dc=yourdomainname,
    dc=com") Then  
  15. Try  
  16. 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)  
  17. myDirectorySearcher = New Directory
    Searcher(myDirectoryEntry)  
  18. myDirectorySearcher.Filter = "
    (uid="
     & txtUser.Text & ")"  
  19. myDirectorySearcher.PropertiesToLoad.
    Add("DisplayLastName")  
  20. myDirectorySearcher.PropertiesToLoad.
    Add("DisplayFirstName")  
  21. mySearchResult = myDirectorySearcher.FindOne  
  22. If mySearchResult Is Nothing Then  
  23. txtResult.Text += "* Login failed."  
  24. Else  
  25. txtResult.Text += ">>> Login passed!" & vbCrLf  
  26. UserName = mySearchResult.GetDirectory
    Entry().Properties("DisplayFirstName").
    Value & " " & mySearchResult.GetDirectory
    Entry().Properties("DisplayLastName").Value  
  27. txtResult.Text += UserName & vbCrLf  
  28. End If  
  29. Catch ex As Exception  
  30. txtResult.Text += "* Login failed." & 
    vbCrLf & ex.Message  
  31. End Try  
  32. Else  
  33. txtResult.Text += "* Invalid user login name."  
  34. End If  
  35. Catch ex As Exception  
  36. txtResult.Text += "* Can not access the 
    LDAP server." & vbCrLf & ex.Message  
  37. End Try  
  38. End Sub 

這里要說明一下:

1、必須檢驗密碼不能為空,否則會造成驗證有誤,即空密碼能通過驗證,不知道為什么。

2、LDAP://......這最前面的四個字母LDAP必須大寫!否則報未知錯誤,不知道為什么,還得我走了一段彎路。

3、ldapserver.com需要替換成LDAP服務器的地址。

4、LDAP://......地址后面的參數,要根據你要訪問的LDAP的設置而定。

5、如果密碼不對,會引發異常,所以我在異常處理中捕獲,但是不知道這樣是否正確。

6、If mySearchResult Is Nothing Then 這句我覺得是廢話,好像怎么也不會為True,如果密碼不對,會引發異常的,但是不放心還是加上這句,可能是我的判斷邏輯有問題。

總之,這段VB.NET驗證LDAP用戶身份的代碼肯定不是最***的代碼,但是確實是可以完成任務的代碼,歡迎大家指正。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-10-28 10:15:48

VB.NET框架類庫

2009-10-12 16:51:28

VB.NET使用Ora

2009-10-21 16:00:26

VB.NET CASE

2009-10-23 13:14:38

2009-10-13 15:09:19

VB.NET使用Tre

2009-11-02 16:22:16

VB.NET面向對象

2010-01-08 16:10:05

VB.NET讀寫文本文

2009-10-29 10:45:01

VB.NET設置控件

2010-01-08 10:21:38

VB.NET Cont

2010-01-12 15:21:48

VB.NET權限控制

2009-10-21 10:05:30

VB.NET運行環境

2010-01-12 11:47:09

VB.NET可選參數

2010-01-21 12:55:08

VB.NET對象序列

2009-10-29 11:41:27

VB.NET寫Obje

2009-10-15 17:50:48

VB.NET調用API

2010-01-14 14:21:07

2010-01-22 15:37:02

VB.NET監控類

2009-10-26 12:39:09

VB.NET通信程序

2010-01-15 18:56:58

VB.NET Fiel

2009-10-30 16:31:55

VB.NET重載方法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男女精品久久 | 国产精品夜间视频香蕉 | 99色综合 | 日韩国产中文字幕 | 国产精品爱久久久久久久 | 精品国产网 | av黄色在线| a在线观看 | 99国产视频 | 亚洲一区二区电影网 | 日韩av在线一区 | 日韩一区二区三区视频 | 韩国久久 | 九九热精品在线 | 亚洲国产精品久久 | 亚洲 自拍 另类 欧美 丝袜 | 中文字幕一区二区三区精彩视频 | 黄色一级毛片 | 免费在线国产视频 | 亚洲欧美综合精品久久成人 | 国产成人免费视频网站高清观看视频 | 日本中文字幕在线观看 | 久久亚洲一区二区三区四区 | av日韩精品| 久久高清 | 国产一级视频免费播放 | 日韩三级 | 国产精品夜色一区二区三区 | 亚洲网在线 | 国产成人一区二 | 男女视频免费 | 国内精品一区二区 | 国产精品视频久久 | av黄色在线播放 | h视频在线播放 | 中文字幕亚洲精品 | 中文字幕人成人 | 91九色视频在线 | 日韩精品一区二区三区在线观看 | 亚洲一区二区日韩 | 青青草一区 |