Furnizor de responsabilitate personalizat

În partea anterioară a lecției, a fost creată metoda CreateUser. care a permis crearea de utilizatori în baza de date.

În această parte, adăugăm funcția de generare a hash și parolă sare.







Pe scurt, ce sare și hash sunt necesare.

O sare este un set de caractere generate aleatoriu care sunt adăugate la parolă și sunt rulate împreună cu aceasta. Împreună cu sarea, descifrarea unei astfel de parole devine și mai dificilă.

În primul rând, vom face generația de sare.

Deschideți UserRepository.cs și adăugați un link la System.Security.Cryptography:

Apoi adăugați o modificare la metoda CreateUser astfel încât sărurile să fie stocate în baza de date:

Acum implementăm metoda de generare a hash-ului. Adăugați următorul cod la UserRepository.cs:

Din nou, schimbăm metoda CreateUser. astfel încât o parolă hashed este stocată în baza de date. Pentru ca codul să funcționeze corect, este necesar să se genereze sarea înainte de hash, deoarece funcția hash utilizează sare.

Acum puteți implementa implementarea aplicației ValidateUser.
Mai întâi, creați metoda ValidateUser din clasa UserRepository

Acum, modificați ValidateUser în MyMembershipProvider

Creați o vizualizare care apare imediat după ce utilizatorul se loghează.







Deschideți HomeController.cs și adăugați metoda de întâmpinare:

Faceți clic dreapta pe Bine ați venit () și selectați Adăugați vizualizare ...

Furnizor de responsabilitate personalizat

În această privință, vom crea un mesaj pentru utilizatorii noi:

Acum deschideți AccounController.cs. găsiți metoda de înregistrare și ștergeți FormService.SignIn. Ar trebui să arate astfel:

Modificați metoda CreateUser (din nou!) Astfel încât cheia este stocată în baza de date.

Acum, dacă cheia este generată, trebuie să o trimiteți cumva unui utilizator. Deoarece lecția nu este mare, vom scrie codul pentru a lucra cu e-mail chiar în clasa UserRepository. În aplicațiile reale, va fi cel mai probabil necesar să se separe această logică într-o clasă separată.

Veți avea nevoie de un server SMTP care vă va permite să trimiteți e-mailuri. Dacă aplicația este pe o gazdă, atunci, ca regulă, există deja propriul server SMTP, pe care îl puteți utiliza. Pentru a testa munca pe computerul local, puteți utiliza un fel de servicii poștale, cum ar fi gmail sau mail.ru

Adăugați un link la System.Net.Mail în UserRepository.cs

În metoda CreateUser, adăugați următorul cod:

În loc de PORT, trebuie să înlocuiți numărul portului pe care rulează aplicația dvs. sau să îl ștergeți complet, dacă rulează pe gazdă. De asemenea, este necesar să înlocuiți valorile EMAIL_FROM, SERVER, USERNAME, PASSWORD cu ale dvs.

Dacă în timpul înregistrării survine următoarea excepție:

Acum vom implementa activarea în sine.

Deschideți AccounController.cs și adăugați următorul cod:

În cele din urmă, creați metoda ActivateUser în UserRepository

Acum trebuie să corectați ValidateUser în UserRepository. astfel încât să se autentifică numai utilizatorii activi.

Un proiect actualizat poate fi descărcat aici CustomRoleAndMembership.zip







Trimiteți-le prietenilor: