HTTP-Authentifizierung (Basic oder Digest) in ASP Classic über IIS [geschlossen]

8

Ich möchte eine Website in ASP classic entwickeln, die HTTP-Authentifizierung für eine Datenbank oder eine Kennwortliste verwendet, die unter der Kontrolle des Skripts steht. Im Idealfall sollte die Lösung keine Komponenten oder IIS-Einstellungen enthalten, da das Skript in einer gehosteten Umgebung ausgeführt werden sollte.

Irgendwelche Hinweise / Code sehr geschätzt.

    
Alexandros Marinos 16.10.2008, 10:43
quelle

3 Antworten

9

Es ist möglich, die HTTP-Basisauthentifizierung in reinem klassischen ASP-VBScript durchzuführen.

Sie werden etwas brauchen, um Base 64 zu entschlüsseln. Hier ist eine reine VBScript-Implementierung . Sie müssen auch sicherstellen, dass Sie in Ihrer IIS-Konfiguration die "Standardauthentifizierung" und die "Integrierte Windows-Authentifizierung" deaktivieren, da diese das zurückwerfen, was Sie im Header HTTP_AUTHORIZATION zurückbekommen.

Hier ist eine Beispielimplementierung, die nur den Benutzernamen und das Passwort zurückgibt.

%Vor%

Wenn Sie den Benutzernamen und das Passwort an etwas Sinnvolles anhängen, bleibt dem Leser eine Übung.

    
lambacck 13.11.2009, 01:46
quelle
3

Per Definition wird die HTTP-Authentifizierung vom Webserver angefordert. Ich bezweifle jedoch, dass Sie eine Lösung finden, die nicht dazu führt, dass keine IIS-Einstellungen angewendet werden.

Der Webbrowser stellt eine Verbindung zu Ihrer Website her, und wenn Ihr Server nicht mit einem HTTP-Antwortcode HTTP / 1.1 401 Nicht autorisiert antwortet, werden die Anmeldeinformationen nicht durchsucht.

Sie könnten versuchen, einen Antwortcode von 401 zu erzwingen und den Header

festzulegen %Vor%

Dann fordert der Browser den Benutzer zur Eingabe des Benutzernamens und des Passworts auf, wird jedoch über den Klartext an den Browser gesendet (base64-codiert), wie folgt:

%Vor%

Was von Base64 in:

übersetzt wird %Vor%

Ich weiß nicht, ob Sie Zugriff auf den Authorization-Header von Ihrer ASP-Seite haben oder ob der Web-Server ausflippen wird, weil jemand versucht, Anmeldeinformationen an ihn zu übergeben, wenn er es nicht erwartet, aber könnte einen Versuch wert ...

    
brianb 16.10.2008 11:50
quelle
0

Hi, versuchen Sie, eine Liste von Benutzern aus einer Datenbank zu erhalten oder verwenden Sie netzwerkbasierte Berechtigungen für den HTTP-Server?

Wenn Sie eine Datenbank verwenden, verwenden Sie ODBC und DSN

%Vor%

Wenn Sie ein Passwort-Dialogfeld (vom Server) wollen, müssen Sie die IIS-Einstellungen für eine gute Anleitung zu diesem ändern ..

Ссылка

    
littlegeek 16.10.2008 11:42
quelle