我想在我們創建的Web應用上實現角色和權限,我正在使用System.Web.Security.SqlRoleProvider來實現此目的。 我的問題是,每個客戶端都希望能夠配置誰可以或不可以在系統中執行操作,並且沒有兩個客戶端需要相同的操作,因此創建基本的Admin,User,Manager角色來覆蓋所有這些都不夠。在c#web應用程序中實現多個角色和權限的最佳方式?
我所建議,每個屏幕所要做的就是創建角色如下
Screen1Create, Screen1Update, Screen1Delete, Screen1Read
Screen2Create, Screen2Update, Screen2Delete, Screen2Read
等。
然後,我會允許客戶選擇每個用戶的角色,這將是存儲在cookie中,當用戶登錄。
然後我可以讀取cookie並使用user.isinrole檢查,如果每個方法可以由當前用戶調用。
我意識到有一個cookie的大小約束,我需要知道。除此之外,這聽起來是否可行,是否有更好的方法來做到這一點?
非常感謝您的任何意見。
感謝您的鏈接。 是的這是我設想實施角色/權限檢查的方式。我想最小化我點擊數據庫的次數,所以我想使用加密的cookie。此cookie中的值將在登錄時添加。 您認爲這是獲得需要的權限級別靈活性的最佳方式嗎? – user411810 2010-08-05 11:36:49
是的,這絕對是最好的方式。設置也很簡單:只需使用principalpermission屬性標記方法,以確保沒有人不應該調用它(他們會得到安全異常)。然後,只需檢查某人的角色即可禁用按鈕。 角色存儲在HttpContext.Current.User中,因此您不必在每個請求中都訪問數據庫。 基於表單的角色認證示例:http://www.codeproject.com/KB/web-security/formsroleauth.aspx – Arnoud 2010-08-05 11:49:17