认证系统ASP.NET 网络应用程序?
-
07-07-2019 - |
题
我有一些问题:
如何使一作用基于网络的应用程序?例如,在论坛网站,还有许多的用户类型,管理员,主持人等等。是的作用的这些用户类型存储在数据库或网络。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会话中。
其他提示
我发现内置的授权方案适用于简单的情况,在这种情况下,您只需要基本上验证谁可以进入和谁可以离开,但是缺少自定义情况,例如拥有特殊的管理员帐户等。
在这些情况下,我创建了自己的身份验证方案。
不隶属于 StackOverflow