Sistema di autenticazione per applicazioni Web ASP.NET?
-
07-07-2019 - |
Domanda
Ho qualche domanda:
Come creare un'applicazione Web basata sui ruoli? Come nei siti dei forum, ci sono molti tipi di utenti, admin, moderatore ecc ... i ruoli di questi tipi di utenti sono memorizzati nel database o web.config? E quando un utente accede al nostro sito, come controllare i ruoli di questo utente? In breve, voglio conoscere l'autorizzazione e l'autenticazione.
Grazie ..
Soluzione
@Mavera:
Fondamentalmente, è il concetto di avere la propria tabella di utenti nel proprio database, in cui è possibile gestire le autorizzazioni e archiviare le informazioni di accesso (ovviamente correttamente hash). Nel caso di uno schema di autorizzazioni multilivello, di solito utilizzo due o più tabelle, ad esempio:
TblUsers:
-----------------------------------------------------------------
| UserID (PK) | UserName | HashedPassword | PermissionLevel (FK)|
|---------------------------------------------------------------|
| 1 | BobTables| adfafs2312 | 2 |
-----------------------------------------------------------------
TblPermissions
-------------------------------------
| PermissionID (PK) | Description |
--------------------------------------
| 1 | User |
| 2 | SuperUser |
| 3 | Admin |
--------------------------------------
Puoi aggiungere la terza tabella che contiene una relazione uno-a-molti tra TblPermissions che espone le capacità effettive che l'utente può essere autorizzato a fare.
L'interrogazione di un utente sarebbe semplice come:
SELECT TblUser.Username, TblPermissions.Description
FROM TblUsers, TblPermissions
WHERE TblUser.UserID = @UserID
AND TblUser.PermissionLevel = TblPermission.PermissionID;
Crea una classe personalizzata per incapsulare tali informazioni e memorizzale nella sessione ASP.NET al momento dell'accesso.
Altri suggerimenti
Controlla questi articoli e video:
Ho scoperto che gli schemi di autorizzazione integrati funzionano benissimo per situazioni semplici in cui devi solo autenticare fondamentalmente chi può entrare e chi può andarsene, ma non riesco a situazioni personalizzate, come avere account amministratore speciali ecc.
In quelle situazioni, ho creato il mio schema di autenticazione.