Question

J'ai une question:

Comment créer une application Web basée sur un rôle? Comme dans les sites de forum, il existe de nombreux types d'utilisateurs, admin, modérateur, etc. Les rôles de ces types d'utilisateurs sont-ils stockés dans la base de données ou dans le fichier web.config? Et quand un utilisateur se connecte à notre site, comment contrôler les rôles de cet utilisateur? En bref, je veux en savoir plus sur l'autorisation et l'authentification.

Merci ..

Était-ce utile?

La solution

@Mavera:

En gros, c’est le concept d’avoir votre propre table d’utilisateurs dans votre propre base de données, où vous pouvez gérer les autorisations et stocker les informations de connexion (correctement hachées, bien sûr). Dans le cas d'un schéma d'autorisation à plusieurs niveaux, j'utilise généralement deux tables ou plus, par exemple:

TblUsers:
-----------------------------------------------------------------
| UserID (PK) | UserName | HashedPassword | PermissionLevel (FK)|
|---------------------------------------------------------------|
|     1       | BobTables| adfafs2312     |         2           |
-----------------------------------------------------------------

TblPermissions
-------------------------------------
|  PermissionID (PK) | Description   |
--------------------------------------
|         1          |     User      |
|         2          |   SuperUser   |
|         3          |     Admin     |
--------------------------------------

Vous pouvez ajouter une 3ème table contenant une relation un-à-plusieurs entre TblPermissions qui expose les capacités réelles que l'utilisateur peut être autorisé à utiliser.

Interroger un utilisateur serait aussi simple que:

SELECT TblUser.Username, TblPermissions.Description 
    FROM TblUsers, TblPermissions 
    WHERE TblUser.UserID = @UserID 
    AND TblUser.PermissionLevel = TblPermission.PermissionID;

Créez une classe personnalisée pour encapsuler ces informations et stockez-les dans une session ASP.NET lorsqu'elles sont connectées.

Autres conseils

J'ai constaté que les systèmes d'autorisation intégrés fonctionnaient très bien dans les situations simples où il suffisait d'authentifier en principe qui pouvait entrer et qui pouvait sortir, mais pas pour les situations personnalisées, telles que la création de comptes d'administrateur spéciaux, etc.

Dans ces situations, j'ai créé mon propre schéma d'authentification.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top