2009-07-22 11 views
1

Ich habe derzeit ein ASP.NET 3.5 SP1 auf IIS 7 ausgeführt. Ich habe die Formularauthentifizierung mit .NET-Mitgliedschaft aktiviert und einige Ordner eingerichtet, die nach Rollen, die ich erstellt habe, eingeschränkt sind. Wenn beispielsweise ein anonymer Besucher versucht, auf die Datei http://www.example.com/restricted/foo.txt zuzugreifen, wird er wie erwartet auf eine Anmeldeseite umgeleitet. So weit, ist es gut.ASP.NET-Formularauthentifizierung über Querystring

Was würde ich tun Zugriff auf geschützte Dateien zur Verfügung stellen, indem die Besucher ihre Anmeldeinformationen in einer Abfragezeichenfolge angeben, was allein die Linien:

http://www.example.com/foo.txt?user=username&pass=pwd

Ist das möglich?

Antwort

0

Sie sollten in der Lage sein, ein HTTP-Modul zu schreiben, das die Anfrage abfängt und den Benutzer basierend auf der Querystring authentifiziert. Nur der Vollständigkeit halber möchte ich jedoch in Frage stellen, ob es sinnvoll ist, Nutzern ihren Benutzernamen und (insbesondere) ihr Passwort im Klartext zur Verfügung zu stellen.

+0

Danke für die schnelle Antwort, Joel. Ich habe noch nie ein HTTP-Modul geschrieben, aber ich werde diesen Weg verfolgen und Sie wissen lassen, wie es funktioniert! –

+0

übrigens dachte ich, jemand die Frage der Sicherheit erhöhen würde :-) ich diese Funktionalität zu teilen mit den meisten Benutzern der Website nicht wirklich beabsichtigen. Das Ziel ist es, einfach ein Widget auf meiner Seite erlauben die Datei zuzugreifen (es dauert eine URL als Input) und die Benutzerrolle die ich für dieses Widget bin Angabe ist sehr restriktiv, so dass keine wichtigen Daten ausgesetzt ist. Ich dachte mir, das würde den vom Widget verwendeten Dateien zumindest ein gewisses Maß an Sicherheit bieten, obwohl ich zugeben muss, dass es sicher nicht narrensicher ist. –

0

Sie könnten leicht eine Download-Seite erstellen, die den Benutzer authentifizieren und dann an die angeforderte Datei weiterleiten würde. So etwas wie zum Download.aspx navigieren? User = Benutzername & pass = pwd & file = foo.txt.

Dies wird jedoch NICHT empfohlen. Sie sollten niemals verlangen, dass Benutzer Anmeldeinformationen über eine URL weitergeben.

+0

Schätzen Sie das Feedback, Dan! Siehe oben meinen Kommentar zur Sicherheit. Mein Dilemma ist, dass ich eine URL zu übergeben, die mein Widget zugreifen können (es ideal wäre, einen lokalen Pfad zu passieren, aber da es ein 3rd-Party-Widget ist, hat es eine Web-URL sein). –

0

Eine sekundäre Antwort basierend auf Kommentare, die Sie auf andere Fragen gemacht haben, ist, dass Sie einfach Ihre Download-Seite in einem Verzeichnis setzen könnten. Der Unterordner könnte eine web.config haben, die nicht authentifizierte Benutzer auf den Inhalt innerhalb :-)

wie etwas zugreifen können:

<configuration> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
</configuration>