7 Stimmen

ASP.Net (C#) Wie POST zu HTTPS von einer HTTP-Seite

C# 3.0 ASP.Net 2.0 IIS6

Ich habe eine normale [non-https] Seite. Auf der Seite befindet sich das standardmäßige ASP.Net-Formular.

Es gibt jedoch zwei "Funktionsbereiche" auf der Seite. Anmeldung und "Angebot anfordern". Die Anmeldeseite muss auf HTTPS POSTen, während der Rest der Seite [einschließlich des "anderen Bereichs"] nicht auf HTTPS basieren kann. In Java [JSP] und normalem Html hätten wir einfach zwei Formulare. Eines, das an HTTPS sendet, und eines, das dies nicht tut.

Wie kann man dies in ASP.Net [von einer Seite aus] handhaben? Ich weiß, dass ich zu einer HTTPS login.aspx Seite verlinken könnte, aber das Unternehmen möchte wirklich den Kontext zusammen.

Irgendwelche Ideen?

Gracias,

0voto

Jon Adams Punkte 23566

In ASP.Net 3.5 (vielleicht SP1 - ich weiß nicht mehr, ob es in der Basisbibliothek oder im SP war) können Sie jetzt das Attribut "action" festlegen. Aber das würde es Post zu HTTPS für beide "Formen" machen.

Wenn Sie beide Formulare auf der gleichen Seite haben wollen, und bestimmen, welche zur "Laufzeit" zu posten, müssen Sie es mit Client-seitigen Code zu tun. Haben Sie Client-Handler auf alle Objekte, die Post-Backs auslösen oder Haken in die _dopostback (oder wie auch immer es genannt wird - zu faul, um es nachzuschlagen) Funktion, und haben es zu überprüfen, welche Schaltfläche gedrückt wurde. Wenn es sich um die nicht sichere Seite handelt, dann löschen Sie zuerst alle Daten in den Anmeldefeldern. Lösen Sie dann manuell das Postback auf die richtige Seite aus.

-1voto

Jonathan Parker Punkte 6551

Könnten Sie nicht einfach eine Response.Redirect(" https://.../Login.aspx "); im Ereignis Klick auf die Schaltfläche Login.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X