我有一些問題: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