我们有一个旧的VB6应用程序,它曾经在各种用户帐户下运行。我们不得不将它移动到一个“公共”机器上,多个用户使用同一个帐户,该帐户会自动登录。
有没有办法弹出官方的 Windows 身份验证表单,让用户输入他们的凭据并将状态天气传回给我,或者身份验证是否发生或失败?
我可以让用户将他们的用户名/密码输入到我自己创建的表单中,并使用附加的代码来验证身份验证。问题是这看起来很粗略,我宁愿没有潜在的访问用户密码的权限。
这是我可以用来验证用户身份的代码:
on error resume next
strUserName = "username"
strPassword = "password"
strADsPath = "WinNT://domainname"
iFlags = "0"
' bind to the ADSI object and authenticate Username and password
Set oADsObject = GetObject(strADsPath)
strADsNamespace = left(strADsPath, instr(strADsPath, ":"))
set oADsNamespace = GetObject(strADsNamespace)
Set oADsObject = oADsNamespace.OpenDSObject(strADsPath, "domainname\" & strUserName, strPassword, 0)
If not (Err.number = 0) Then
MsgBox(strUserName + " Failed.")
Else
MsgBox(strUserName + " Authenticated.")
End If
我希望这样的事情:
if (AuthenticateUser() <> true)
MsgBox(strUserName + " Failed.")
Else
MsgBox(strUserName + " Authenticated.")
End If