我有一些问题:

如何使一作用基于网络的应用程序?例如,在论坛网站,还有许多的用户类型,管理员,主持人等等。是的作用的这些用户类型存储在数据库或网络。config?当一个用户登录到我们的网站,如何控制这种用户的角色吗?在短短的我想要了解有关授权和验证。

感谢..

有帮助吗?

解决方案

@Mavera:

基本上,它的概念是在您自己的数据库中拥有自己的用户表,您可以在其中管理权限和存储登录信息(当然正确地进行了哈希)。在多级权限方案的情况下,我通常使用两个或更多表,例如:

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

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

您可以在TblPermissions之间添加包含一对多关系的第三个表,该关系会公开用户可能允许的实际能力。

查询用户将非常简单:

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

创建一个自定义类来封装该信息,并在登录时将其存储在ASP.NET会话中。

其他提示

我发现内置的授权方案适用于简单的情况,在这种情况下,您只需要基本上验证谁可以进入和谁可以离开,但是缺少自定义情况,例如拥有特殊的管理员帐户等。

在这些情况下,我创建了自己的身份验证方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top