人們,我已經收集了大量關於這件事的帖子,而我在這裏看不到光。在視圖中請求權限是正確的,或者它應該是MVC中的模型?
這是很容易問的執行權限/做或顯示視圖東西作爲控制器,但更復雜的做模型,至少是發生在我身上。 控制器,因爲您可以輕鬆地訪問會話對象:HttpContext.Current.Session [「UserPermissions」],並從視圖中我能有一個sessionmanager和accesing這樣的:SessionManager.IsAllowed(Permission.SuperUser),這是也在控制器中構建。但是,我們如何才能在連接數據庫的模型和業務層中輕鬆實現?
這是我的示例 -
當我需要從數據庫中獲得一些信息,並根據在用戶允許,我想不填充數據的對象,我知道用戶不能夠訪問。
可以很容易地分析視圖對象,只顯示該項目的用戶是允許看,但即使不是更好濾液這個項目之前把他們的觀點?
有人能告訴我一個例子,我實現了一個權限類來使用它跨越我所有的模型?
謝謝!
一個簡單的例子與我所擁有的相同。 在視圖中的檢查: 如果(SessionManager.IsAllowed(Permission.DoChargebackAction)) 在控制器的方法: 公共靜態布爾IsAllowed(權限權限) { 返回GetUserPermissions()。包含(許可); } 公共靜態的IList GetUserPermissions(){ 如果 (SessionManager.IsNullUserPermissionSession()) 返回新的List (); return(IList )HttpContext.Current.Session [「UserPermissions」]; } –
user2217909
2013-03-28 00:44:48
您的模型不應該「伸手」以獲取任何數據。如果它依賴於來自會話等的權限,則應將該數據傳遞到模型中。 – 2013-03-28 00:54:35