我有一些问题:ASP.NET Web应用程序的身份验证系统?
如何制作基于角色的Web应用程序?比如在论坛网站上,有许多用户类型,管理员,主持人等......是存储在数据库或web.config中的这些用户类型的角色吗?而当用户登录我们的网站时,如何控制这个用户角色?总之,我想了解授权和认证。
谢谢..
我有一些问题:ASP.NET Web应用程序的身份验证系统?
如何制作基于角色的Web应用程序?比如在论坛网站上,有许多用户类型,管理员,主持人等......是存储在数据库或web.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会话时,他们在登录
我发现内置的授权方案为,你只需要基本身份验证谁可以进入和谁可以离开,但功亏一篑定制情况,比如有特殊情况的简单工作的伟大管理员帐户等。
在这些情况下,我创建了自己的身份验证方案。
非常感谢乔纳森。荷兰。那很棒。 – mavera 2008-11-08 07:19:42