Egyéni felelősségbiztosítási szolgáltató
A lecke előző részében létrehozták a CreateUser módszert. amelyek lehetővé tették az adatbázisban lévő felhasználók létrehozását.
Ebben a részben hozzáadjuk a hash és jelszó só létrehozásának funkcióját.
Röviden, milyen sóval és hash van szükség.
A só a véletlenszerűen generált szimbólumok egy csoportja, amelyek hozzáadódnak a jelszóhoz, és meg is szedve. A sóval együtt egy ilyen jelszó megfejtése még nehezebbé válik.
Kezdjük azzal, hogy elkészítjük a sót.
Nyisd meg a UserRepository.cs fájlt és adj hozzá egy linket a System.Security.Cryptography:
Ezután adjon hozzá egy módosítást a CreateUser-módszerhez, hogy a só az adatbázisban tárolódjon:
Most végrehajtjuk a hash előállításának módját. Adja hozzá a következő kódot a UserRepository.cs fájlhoz:
Ismét megváltoztatjuk a CreateUser módszert. hogy az adatbázisban tárolt jelszó tárolódjon. Annak érdekében, hogy a kód megfelelően működjön, a hasítást megelőzően létre kell hozni a sót, mivel a hasítófunkció sót használ.
Most végre tudja hajtani a ValidateUser implementációját.
Először hozzon létre a ValidateUser metódust a UserRepository osztályban
Most módosítsa a ValidateUser-t a MyMembershipProvider-ban
Hozzon létre egy nézetet, amely közvetlenül a felhasználó bejelentkezése után jelenik meg.
Nyissa meg a HomeController.cs fájlt, és adja hozzá a Welcome módszerét:
Kattintson a jobb gombbal a Welcome () gombra, és válassza a Hozzáadás nézet ...
A nézetben új üzeneteket hozunk létre az új felhasználóknak:
Most nyissa meg a AccounController.cs. keresse meg a Regisztrációs módot és törölje az FormService.SignIn fájlt. Úgy kell kinéznie:
Módosítsa a CreateUser módszert (újra!) Hogy a kulcs az adatbázisban tárolódjon.
Most, hogy a kulcs keletkezik, valahogyan el kell küldenie a felhasználónak. Mivel a lecke nem nagy, a kódot a UserRepository osztályban közvetlenül a levélhez kell írnunk. Valódi alkalmazásoknál valószínűleg különálló osztályba kell különíteni ezt a logikát.
Szüksége lesz egy SMTP-kiszolgálóra, amely lehetővé teszi, hogy leveleket küldjön. Ha az alkalmazás a tárhelyen van, akkor rendszerint már rendelkezik saját SMTP szerverrel, amelyet használhat. A helyi számítógépen végzett munkák teszteléséhez használhat valamilyen postai szolgáltatást, mint például a gmail vagy a mail.ru
Link hozzáadása a System.Net.Mailhez a UserRepository.cs-ban
A CreateUser módszerben adja hozzá a következő kódot:
A PORT helyett helyettesíteni kell azt a portszámot, amelyen az alkalmazás fut, vagy teljesen törli, ha a rendszer a tárhelyen fut. Az EMAIL_FROM, a SERVER, a USERNAME, a PASSWORD értékeket is ki kell cserélni a sajátjával.
Ha a következő kivétel történik a regisztráció során:
Most végrehajtjuk az aktiválást.
Nyissa meg az AccounController.cs parancsot, és adja hozzá a következő kódot:
Végül hozzon létre az ActivateUser módszert a UserRepositoryban
Most ki kell javítania a ValidateUser-t a UserRepository-ban. így csak az aktivált felhasználókat hitelesítheti.
Frissített projekt letölthető itt: CustomRoleAndMembership.zip