我正在開發一個使用ASP.Net MVC 4的應用程序,並且需要能夠以細粒度級別授權用戶 - 可能是頁面上的數據元素,用戶可以採取的特定操作一塊數據等關於授權用戶功能點的指導
我目前正在爲一個角色分配一個人,併爲該角色分配了一個活動的權限(查看,添加,編輯和刪除)。角色和權限值(我使用權限的按位值)被分配給一個活動。我目前在我的ASP.Net MVC應用程序中將活動定義爲動作。因此,爲了導航到MVC操作,用戶必須至少具有該操作的查看權限,否則他們將無法訪問該操作。該用戶可以在該操作中執行的操作取決於其他權限(添加,編輯,刪除)。
這是一個好方法。所有權限都存儲在我的數據庫中,所以我幾乎將權限從UI本身分離出來。我所做的只是檢查用戶在顯示按鈕以加載數據輸入表單之前是否有添加權限。
我很確定這種方法不夠精細。例如,如果我需要在用戶角色中隱藏用戶X的數據列,那麼我不確定如何用我的方法來滿足這個需求。現在查看權限是全部或全部。
我非常不願意在我的視圖代碼中注入一堆if語句來控制顯示給用戶的內容。這將UI與我的安全機制緊密結合在一起。更何況你不能保持這一點。
因此,我很難理解如何使安全機制更加細化,並保持一個很好的清晰分離。當我想到這一點時,我直接從當前的方法中跳躍,在代碼中注入一堆if語句。我沒有看到任何替代品。任何建議,鏈接到例子等最佳實踐是非常讚賞和需要。謝謝你的時間。
有趣。感謝您的反饋。你有任何鏈接,你可以分享請進一步閱讀? –
這是大學學習的太多的理論,主要是基於黃皮書的一部分 - http://csrc.nist.gov/publications/secpubs/rainbow/std001.txt。我也建議通過「訪問控制」的文章閱讀和找到的東西,將是有益的 - http://en.wikipedia.org/wiki/Access_control。 – mikalai