Bottom-to-Top design a implementace znamená, že vrstvy aplikace budujeme od back-endu, tj. od těch spodních (databáze, ORM, datová vrstva) k těm vyšším patrům naší appky, jako je aplikační vrstva (servisní třídy) a prezentační vrstva (formuláře, webové stránky apod.).
Nejprve si tedy připravíme tabulky pro uživatele a role, poté k nim vytvoříme business objekty, přidáme anotace pro ORM, definujeme repo třídy, interface-y pro aplikační vrstvu a servisní třídy.
Na "relační" straně ORM, tj. v databázi budeme mít tedy 3 nové tabulky:
Na "objektové" straně ORM, tedy v projektu ve VS vytvoříme tyto třídy:
Detailní popis business objektů pro autentizaci a správu uživatelů se nachází zde.
Identifikace, autentizace a autorizace jsou základní kameny v zabezpečení aplikace. Vysvětlení těchto pojmů následuje.
Přidáme formulář pro login do aplikace, případně i nějakou akci pro logout.
Přidáme autorizační ověření ke každému use-case-u (např. otevření nějakého formuláře, zobrazení určitého tlačítka apod.) podle oprávnění přihlášeného uživatele.
Uživatel s rolí administrátor bude mít možnost spravovat ostatní uživatelské účty (provádět s nimi operace CRUD).
Administrátor bude moci také spravovat aplikační role (opět pomocí CRUD) a přidělovat, případně odebírat role jednotlivým uživatelům.
Je dobré zabezpečit, aby jeden speciální účet s administrátorskými právy (např. "admin") nešel smazat (jinak už nebude kdo mít možnost spravovat celou appku, zejména její uživatele) a aby nebylo možné odebrat tento účet ("admin") ze skupiny administrátorů (odebrat mu roli administrátor). Jinak by opět hrozilo, že bychom sami sobě odebrali možnost spravovat aplikaci.