Teilwebsite-SSL mit der Login-Steuerung von asp.net

Ich versuche, ein home-grown Login-System auf die Standard-Login-Steuerung asp.net in .net zu konvertieren. Ich möchte alle Kommunikation auf der Website für einen nicht angemeldeten Benutzer im Klartext, aber sperren Sie alles in SSL, sobald der Benutzer sich anmeldet - einschließlich der Übertragung des Benutzernamens und des Kennworts.

Ich hatte dies zuvor durch Laden einer zweiten Seite - "loginaction.aspx" - mit einem https: Präfix, dann ziehen Sie den Benutzernamen und das Passwort durch die Suche nach den richtigen Textfeld Kontrollen in Request.Form.Keys. Gibt es eine Möglichkeit, etwas ähnliches mit den .net-Login-Steuerelementen zu tun? Ich möchte keine separate Login-Seite haben, sondern dieses Steuerelement (in einer Login-Ansicht) auf jeder Seite der Site einfügen.

0

3 Antworten

Sie werden nicht in der Lage sein zu tun, worüber Sie reden, denn das Postback (das ist das, was das Login-Steuerelement verwendet) wird unabhängig von der Sicherheit der Seite (SSL oder Nicht-SSL) sein.

In diesem Szenario empfiehlt es sich am besten, einen IFRAME zu verwenden, der eine HTTPS-Seite (SSL) enthält, die nur das Login-Steuerelement enthält. Möglicherweise müssen Sie nach dem Anmelden auf eine andere Seite umleiten, damit Sie aus dem IFRAME springen können.

Plan B wäre ein separates Formular auf der Seite (außerhalb Ihres Hauptformulars), bei dem die Eigenschaft ACTION auf eine andere Seite verweist, auf der Sie die Anmeldung vornehmen. Sie müssen Ihren eigenen Login-Code eingeben, um die Formularauthentifizierung zu übernehmen.

0
hinzugefügt
Seien Sie sich bewusst, dass die Verwendung einer dieser Techniken immer noch nicht sicher ist, da es für einen Mann im mittleren Angriff anfällig ist. Für weitere Informationen lesen Sie dies. jlorenzen.blogspot.com/2009/11/…
hinzugefügt der Autor Erik Funkenbusch, Quelle

Sie können Ihre Site nicht als Nicht-SSL-Verbindung mit einer Login-Box auf jeder Seite speichern und dann den Benutzernamen und das Passwort über SSL übermitteln.

Die einzige Möglichkeit, dies wirklich zu erreichen, ist die Verwendung von Frames. Auf diese Weise könnte Ihre gesamte Seite nicht SSL sein, aber der Login-Frame müsste SSL sein.

Die übliche Vorgehensweise besteht darin, entweder die gesamte Site mit SSL zu sperren, sich nicht darum zu sorgen, dass der Benutzername und das Passwort SSL-verschlüsselt sind und nach der Anmeldung zu SSL wechseln oder die Frame-Route, die ich oben erwähnt habe, ausführen.

0
hinzugefügt

Ich konnte dies erreichen, indem ich dem Login-Button-Steuerelement ein OnClientClick-Ereignis hinzufügte und es auf die folgende Javascript-Funktion setzte.
`

function forceSSLSubmit() 
{

                var strAction = document.forms[0].action.toString();

                if (strAction.toLowerCase().indexOf("http:") == 0) {
                    strAction = "https" + strAction.substring(4);

                    document.forms[0].action = strAction;
                }

        }

`

0
hinzugefügt