2008-10-15 44 views
2

我希望確保用戶能夠通過「區域」訪問aspx頁面。例如,「財務」是一些用戶不應訪問的安全區域。確保頁面級安全性的最佳方法

結果不應該涉及諸如MVP,MVC,MVVM等模式。我正在尋找一些輕而快的事情。

爲了讓事情變得更容易,我有一個基類,每個aspx頁面派生自。讓每個頁面被檢查與給定userID的安全區域相比,最簡單/最好的方式是什麼?

謝謝。

回答

3

我用過這個,不管這是最好的方式是嚴重的問題。我有一個從頁面派生的類,名爲SecurePage。在這種情況下,我通常在數據庫中有一個交叉表,列出對象(如頁面)和可訪問該頁面的組/用戶。使用UserID和Object名稱(本例中爲頁面名稱,但可以是字段或其他)運行存儲過程,它會返回該用戶或該用戶所屬的組是否具有訪問權限。你可以在頁面初始化期間檢查它,如果它不匹配,那麼response.redirect它們或你想做的任何事情。

-1

爲什麼不直接使用內置於.NET中的表單身份驗證等安全功能?這很容易。

+0

這是真的,它很容易設置和易於使用。 – stephenbayer 2008-10-15 20:32:30

1

是的,使用窗體或Windows身份驗證。根據經過驗證的用戶角色,您可以輕鬆鎖定網站的不同部分。看看使用locations

2

你基本上需要創建一個小的ACL實現。 (訪問控制列表)。

創建一個acl_roles表,包含您的所有角色(Admin,Accountant,whatever,guest)和其他東西。然後將它的id和你的用戶表關聯起來,這樣每個用戶都有一個role_id。

然後定義一個acl_resources表,在其中添加「區域」在您的應用程序和他們必須訪問它的最小角色。

然後在每個腳本開始時只需檢查當前用戶是否有足夠的權限在該區域中。

這裏有更多的細節,但這是基本的想法。