when the please occurred indicate error cannot http iis authentication asp-classic http-authentication

the - Autenticación HTTP(Básica o Resumen) en ASP Classic a través de IIS



an error occurred on the server when processing the url. please contact the system administrator. (3)

Deseo desarrollar un sitio web en ASP clásico que utilice Autenticación HTTP en una base de datos o lista de contraseñas que esté bajo el control del script. Idealmente, la solución no debería incluir componentes o configuraciones de IIS, ya que la secuencia de comandos debería poder ejecutarse en un entorno alojado.

Cualquier pista / código profundamente apreciado.


Hola, ¿estás tratando de obtener una lista de usuarios de una base de datos o usar permisos basados ​​en la red en el servidor HTTP?

Si está utilizando una base de datos use ODBC y DSN

Dim DatabaseObject1 Set DatabaseObject1 = Server.CreateObject("ADODB.Connection") DatabaseObject1.Open("DSN=DSNname;")

Si desea un cuadro de diálogo de contraseña (del servidor), deberá modificar la configuración de IIS para obtener una buena guía sobre esto.

http://www.authenticationtutorial.com/tutorial/


Por definición, HTTP Authentication es algo que solicita WebServer, dudo que encuentre una solución que no dé como resultado que no se aplique ninguna configuración de IIS.

El navegador web se conectará a su sitio web, y a menos que su servidor responda con un código de respuesta HTTP HTTP / 1.1 401 no autorizado, el navegador no pasará las credenciales.

Podría intentar forzar un código de respuesta de 401 y establecer el encabezado

WWW-Authenticate: Basic realm="SomethingGoesHere"

Luego, el navegador solicitará al usuario el nombre de usuario y la contraseña, pero se enviará a través de texto sin cifrar al navegador (codificado en base64), así:

Authorization: Basic YnJpYW5iOmJvYmJ5Ym95

Que se traduce de Base64 a:

brianb:bobbyboy

No sé si tendrá acceso al encabezado Autorización desde su página ASP, o si el Servidor Web se va a enloquecer porque alguien está tratando de pasarle credenciales cuando no lo está esperando, pero podría valer la pena un tratar...


Es posible hacer autenticación básica HTTP en ASP clásico puro VBScript.

Necesitará algo para decodificar la base 64. Aquí hay una implementación pura de VBScript . También deberá asegurarse de que en su configuración IIS desactive "Autenticación básica" y "Autenticación integrada de Windows", ya que interferirán con lo que recibe en el encabezado HTTP_AUTHORIZATION.

Aquí hay una implementación de ejemplo que simplemente hace eco del nombre de usuario y la contraseña.

<%@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 %>

Enganchar el nombre de usuario y la contraseña a algo significativo se deja como un ejercicio para el lector.