2010-12-15 141 views
0

我在SQL2008數據庫中爲用戶提供了一個表,然後在User角色和UserRoles橋接表中添加了一個表。我處於必須使用RoleProvider工作的地步,並用[授權(角色=「管理員,開發人員」)修飾了我的部分操作]MVC2從SQL授權角色

實際上,我在每個用戶的網站上構建導航,因此RoleProvider只是爲了防止較低級別的用戶從他的管理夥伴那裏獲取URL並轉到他不應該訪問的頁面。

我們針對每個用戶羣建立網站導航,並在用戶,他的角色和他所在角色的頁面之間建立映射。我只想知道是否有任何方法可以通過[Authorize(Roles =「」)]從我的數據庫中動態獲取具有該操作權限的角色列表?這樣我就不必去裝飾我擁有的所有動作,它只會從數據庫中拉出,就像通過魔法一樣。

一個簡單的例子將不勝感激,謝謝。 傑克

回答

0

我基本上寫了我自己的CustomAuthorize類,它繼承了AuthorizeAttribute,並且在OnAuthorization中我做了查找訪問。如果用戶沒有訪問我基本上做: filterContext.Result = new HttpUnauthorizedResult(); filterContext.Result = new RedirectResult(「/ accessDenied」);

工程,我裝飾我的方法:[CustomAuthorize]