SSL parțial pe site folosind controlul de autentificare asp.net

Încerc să convertesc un sistem de conectare la domiciliu la controlul standard de autentificare asp.net inclus în .net. Vreau ca toată comunicarea pe site-ul web pentru un utilizator care nu este conectat să fie în text clar, dar blochează totul în SSL odată ce utilizatorul se conectează - inclusiv transmiterea numelui de utilizator și a parolei.

Am avut acest lucru înainte de a încărca oa doua pagină - "loginaction.aspx" - cu un prefix https:, apoi scoateți numele de utilizator și parola căutând controalele de textbox corespunzătoare în Request.Form.Keys. Există o modalitate de a face ceva similar folosind controalele de conectare .net? Nu vreau să am o pagină separată de conectare, ci mai degrabă să includ acest control (în cadrul unei vizualizări de autentificare) pe fiecare pagină a site-ului.

0

3 răspunsuri

Nu veți putea să faceți ceea ce vorbiți pur și simplu, deoarece postback-ul (ceea ce este folosit de controlul de autentificare) va fi oricare ar fi securitatea paginii (SSL sau non-SSL).

Cel mai bun pariu în acest scenariu este să utilizați un IFRAME care conține o pagină HTTPS (SSL) care conține doar controlul de logică. Este posibil să trebuiască să redirecționați către o altă pagină după conectare, care vă permite să sari din IFRAME.

Planul B ar fi să aveți un formular separat pe pagină (în afara formularului dvs. principal) care are punctul de proprietate ACTION către o altă pagină în care gestionați datele de conectare. Va trebui să vă rotiți propriul cod de conectare pentru a gestiona autentificarea formularelor.

0
adăugat
Fiți conștient de faptul că utilizarea oricăreia dintre aceste tehnici nu este încă sigură, deoarece este susceptibilă la un om în mijlocul atacului. Pentru mai multe informații, citiți acest lucru. jlorenzen.blogspot.com/2009/11/…
adăugat autor Erik Funkenbusch, sursa

Nu veți putea avea site-ul dvs. ca non-SSL, cu o casetă de autentificare pe fiecare pagină, apoi trimiteți numele de utilizator și parola prin SSL.

Singura modalitate de a realiza acest lucru este de a folosi cadre de un fel. În acest fel, întreaga pagină ar putea fi non-SSL, dar cadrul de autentificare ar trebui să fie SSL.

Modurile obișnuite de a face acest lucru sunt fie să blocați întregul site cu SSL, nu vă faceți griji cu privire la faptul că aveți numele de utilizator și parola SSL criptat și mergeți la SSL după ce vă logați sau mergeți pe ruta cadru pe care am menționat-o mai sus.

0
adăugat

Am reușit să realizez acest lucru adăugând un eveniment OnClientClick la controlul butonului de conectare și l-am setat la următoarea funcție javascript. `

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
adăugat