这篇文章主要为大家展示了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。