我有一个经典的ASP网站(很抱歉!),其中的某些部分需要进行NT身份验证。 我希望呈现给用户一个美观的登录表单(而不是浏览器提示),然后根据AD对其进行身份验证,然后执行“如果成功则登录,如果失败则显示错误”的常规操作。这可能吗?我已在本地计算机上尝试了以下内容,但不确定如何正确测试成功或是否扩展到针对AD的搜索。
<html>
<head>
</head>
<body>
<form action="test.asp" method="post">
Username:
<input type="text" name="strUserName"><br>
Password:
<input type="password" name="strPassword"><br>
<input type="submit" name="btnSubmit">
</form>
<%
If Request.Form("strUsername") <> "" Then
Dim strADsPath
strADsPath = "WinNT://ARIA"
strUserName = Request.Form("strUserName")
strPassword = Request.Form("strPassword")
'Set adObject = GetObject("WinNT:")
'Set userObject = adObject.OpenDSObject("WinNT://" & domainName, userName, password, ADS_SECURE_AUTHENTICATION)
if (not strADsPath= "") then
Dim oADsObject
Set oADsObject = GetObject(strADsPath)
response.write "Authenticating...<br><br>"
Dim strADsNamespace
Dim oADsNamespace
strADsNamespace = left(strADsPath, instr(strADsPath, ":"))
set oADsNamespace = GetObject(strADsNamespace)
Set oADsObject = oADsNamespace.OpenDSObject(strADsPath, strUserName,strPassword, 0)
if not (Err.number = 0) then
Response.Write "<font color='red'><font size = 5><u><b>Authentication has failed...<b></u></font></font>"
Session("Auth") = "NO"
else
Response.Write "<font color='blue'>USER AUTHENTICATED!</font><br>"
Session("Auth") = "YES"
end if
end if
End If
%>
</body>
</html>
一旦身份验证成功,是否可以获取其他信息,如电子邮件和组?
我尝试了遵循Classic ASP (VBScript), 2008 R2, error using AD to authenticate并尝试对我的本地计算机进行身份验证,但无论我输入什么,它都始终进行身份验证。这是因为我使用本地计算机的原因吗?它就是行不通吗?