ユーザーがWindowsドメインユーザーとパスワードを入力して入力する必要があるアクセスアプリがあります。これを実現するために、次の VBA コードを使用しました。
Function WindowsLogin(ByVal strUserName As String, ByVal strpassword As String, ByVal strDomain As String) As Boolean
'Authenticates user and password entered with Active Directory.
On Error GoTo IncorrectPassword
Dim oADsObject, oADsNamespace As Object
Dim strADsPath As String
strADsPath = "WinNT://" & strDomain
Set oADsObject = GetObject(strADsPath)
Set oADsNamespace = GetObject("WinNT:")
Set oADsObject = oADsNamespace.OpenDSObject(strADsPath, strDomain & "\" & strUserName, strpassword, 0)
WindowsLogin = True 'ACCESS GRANTED
ExitSub:
Exit Function
IncorrectPassword:
WindowsLogin = False 'ACCESS DENIED
Resume ExitSub
End Function
情報を正しく入力しても、アクセスが拒否されることがあります。一度デバッグしようとしたところ、「ネットワーク パスが見つかりませんでした。」というエラーが表示されましたSet oADsObject = oADsNamespace.OpenDSObject)
。
なぜこれが時々起こるのか分かりません。代わりに LDAP に変換した方がよいでしょうか? 試してみましたが、LDAP URL を正しく構築できません。