偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

深入剖析VB.NET驗(yàn)證LDAP用戶身份

開發(fā) 后端
當(dāng)我們想在程序代碼中實(shí)現(xiàn)VB.NET驗(yàn)證LDAP用戶身份的時(shí)候,可以通過以下介紹的內(nèi)容來逐步的完成。在這里就為大家詳細(xì)介紹一下。

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

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

請(qǐng)看VB.NET驗(yàn)證LDAP用戶身份的代碼(部分敏感信息刪節(jié)):

  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、必須檢驗(yàn)密碼不能為空,否則會(huì)造成驗(yàn)證有誤,即空密碼能通過驗(yàn)證,不知道為什么。

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

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

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

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

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

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

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

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-11-02 16:22:16

VB.NET面向?qū)ο?/a>

2009-10-13 15:09:19

VB.NET使用Tre

2010-01-08 10:21:38

VB.NET Cont

2010-01-12 15:21:48

VB.NET權(quán)限控制

2009-10-21 10:05:30

VB.NET運(yùn)行環(huán)境

2010-01-08 16:10:05

VB.NET讀寫文本文

2009-10-29 10:45:01

VB.NET設(shè)置控件

2010-01-14 14:21:07

2010-01-22 15:37:02

VB.NET監(jiān)控類

2010-01-12 11:47:09

VB.NET可選參數(shù)

2010-01-21 12:55:08

VB.NET對(duì)象序列

2009-10-29 11:41:27

VB.NET寫Obje

2009-10-15 17:50:48

VB.NET調(diào)用API

2009-11-02 14:55:52

VB.NET Obje

2009-10-14 14:19:00

VB.NET創(chuàng)建表示層

2009-11-03 13:33:39

VB.NET對(duì)象列表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)