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