1
我想重新使用Windows身份验证来绑定到Active Directory用户并检查组成员资格。用于Active Directory用户绑定的No Environ(“密码”)?
我可以得到Windows用户名为Environ("username")
,但是如何获取密码?我不想要求用户重新输入密码,但没有Environ("password")
。
如何让这段代码有效?
谢谢!
Private Sub ADsAuthenticate()
Dim objConnection As New ADODB.Connection
Dim objRecordset As ADODB.Recordset
Dim objADsUser As IADsUser
Dim objADsGroup As IADsGroup
Dim strUsername As String
Dim strPassword As String
strUsername = Environ("username")
strPassword = Environ("password")
With objConnection
.Provider = "ADsDSOObject"
.Properties("User ID") = strUsername
.Properties("Password") = strPassword
.Properties("Encrypt Password") = True
.Open "ADs Provider"
Set objRecordset = .Execute("<LDAP://<server>/dc=<domain>,dc=com>;" _
& "(sAMAccountName=" & strUsername & ");ADsPath;Subtree")
End With
With objRecordset
If Not .EOF Then
Set objADsUser = GetObject("LDAP:").OpenDSObject(.Fields("ADsPath").Value, strUsername, strPassword, ADS_SECURE_AUTHENTICATION)
Debug.Print objADsUser.ADsPath
For Each objADsGroup In objADsUser.Groups
Debug.Print objADsGroup.Name
Next
End If
End With
objConnection.Close
End Sub
我需要密码才能绑定到用户对象,所以我想我将不得不在用户启动应用程序时再次询问用户密码,尽管它与登录Windows时使用的密码相同。感谢Joel的反馈。 – Kuyenda 2010-03-05 18:32:15
@Kuy - 你应该能够在不重新提交用户名和密码的情况下检查Active Directory。一个你登录到窗口,它知道你是谁。 – 2010-03-05 18:44:55
乔尔,你是对的。 objConnection不需要用户名和密码,但OpenDSObject可以。是否有另一种方法绑定到用户对象而不需要用户名和密码?再次感谢! – Kuyenda 2010-03-05 18:56:01