2010-01-11 39 views
1

我有我的NET MVC網站Membership,ProfileRole供應商設置。我想說的是:Role可以訪問Page確定用戶是否可以訪問數據庫生成的頁面?

如何將此代碼注入到RoleProvider?或者我必須以某種方式覆蓋它?任何線索?

(角色存儲在默認的ASP.NET SqlRoleProvider中,Pages存儲在單獨的SQL數據庫中)。

回答

1

在asp.net下看看usingsitemaps。這是非常容易管理,並extend

我甚至用它們作爲菜單系統的數據源。

一旦在你的頁面,你可以這樣做:

User.IsInRole("RoleName") 
+0

Hmmz,我目前有一個自定義的SiteMapProvider。我錯過了什麼...? :) – Ropstah 2010-01-11 23:59:26

+1

在您的自定義sitemapprovider代碼中,重寫IsAccessibleToUser方法並使用context.User.IsInRole(role) - 然後在您的站點地圖中,可以添加角色屬性(roles =「SysAdmin,Contributor」) – 2010-01-12 00:04:11

2

你爲什麼要把這個注入角色提供者?爲什麼不只是裝飾ActionResult [Authorise(Roles="myrole")]

我知道您的網頁位於數據庫中,但操作結果仍然需要調用視圖嗎?

我想你可以寫你自己的自定義屬性,它可以檢查並授予訪問權限或拒絕它。

我不認爲角色提供者是確定是否可以顯示頁面的正確位置。

+0

大聲笑,我也有一個自定義FilterAttribute如果用戶被授權查看一個網頁,其中檢查。我如何管理這一切?是我猜的問題。 :) – Ropstah 2010-01-12 00:00:29

+0

通過管理你是否指你如何創建角色並將用戶分配給它?對這裏的意思有點困惑@ropstah – griegs 2010-01-12 00:04:44

+0

不,我可以創建角色並分配用戶。我需要'分配'頁面到角色,以一種可管理的方式.. – Ropstah 2010-01-12 00:10:20

相關問題