ASP Classic中的HTTP身份验证(基本或摘要)通过IIS

我想在ASP classic中开发一个网站,该网站对脚本控制下的数据库密码列表使用HTTP身份验证.理想情况下,解决方案应该不涉及组件或IIS设置,因为脚本应该可以在托管环境中运行.

任何线索/代码深受赞赏.

解决方法

可以在纯粹的经典ASP VBScript中进行HTTP基本身份验证.

您将需要一些东西来解码base 64. Here is a pure VBScript implementation.您还需要确保在IIS配置中关闭“基本身份验证”和“集成Windows身份验证”,因为这些会干扰您在HTTP_AUTHORIZATION标头中返回的内容.

这是一个示例实现,只是回显用户名密码.

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="decbase64.asp" -->

<%
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 
    %>
    <html>
    <body>
    <% 
        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)) %>
    </body>
    </html>
    <%
End If
%>

用户名密码挂钩到有意义的东西留给读者练习.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....