我想在ASP classic中开发一个网站,该网站对脚本控制下的数据库或密码列表使用HTTP身份验证.理想情况下,解决方案应该不涉及组件或IIS设置,因为脚本应该可以在托管环境中运行.
任何线索/代码深受赞赏.
可以在纯粹的经典ASP VBScript中进行HTTP基本身份验证.
您将需要一些东西来解码base 64. 这是一个纯VBScript实现.您还需要确保在IIS配置中关闭"基本身份验证"和"集成Windows身份验证",因为这些会干扰您在HTTP_AUTHORIZATION标头中返回的内容.
这是一个示例实现,只是回显用户名和密码.
<%@LANGUAGE="VBSCRIPT"%> <% Sub Unauth() Call Response.AddHeader("WWW-Authenticate", "Basic realm=""SomethingGoesHere""") Response.Status = "401 Unauthorized" Call Response.End() End Sub Dim strAuth strAuth = Request.ServerVariables("HTTP_AUTHORIZATION") If IsNull(strAuth) Or IsEmpty(strAuth) Or strAuth = "" Then Call Unauth Else %> <% Dim aParts, aCredentials, strType, strBase64, strPlain, strUser, strPassword aParts = Split(strAuth, " ") If aParts(0) <> "Basic" Then Call Unauth End If strPlain = Base64Decode(aParts(1)) aCredentials = Split(strPlain, ":") %> <%= Server.HTMLEncode(aCredentials(0) & " - " & aCredentials(1)) %> <% End If %>
将用户名和密码挂钩到有意义的东西留给读者练习.