當前我使用[Authorize(Roles =「.....」)]來保護我的控制器動作在我的ASP.NET MVC 1應用程序上,並且工作正常。但是,某些搜索視圖需要具有按鈕,這些按鈕會根據搜索列表中選定的記錄啓用/禁用需要啓用/禁用的這些操作,並且還需要登錄用戶的安全權限。ASP.NET MVC - 擴展授權屬性
因此,我認爲我需要有一個類訪問數據庫表,這些數據庫通過應用程序角色交叉引用這些目標控制器/操作來確定這些按鈕的狀態。顯然,這會使事情變得混亂,因爲priv需要在兩個地方保留 - 在該類/數據庫表中以及控制器操作上(另外,如果我想更改對操作的訪問權限,我將不得不更改代碼和編譯,而不僅僅是更改數據庫表項)。
理想情況下,我想擴展[Authorize]功能,以便不必在[Authorize]代碼中指定角色,而是根據用戶,控制器和操作查詢安全類,然後返回布爾值允許或拒絕訪問。有沒有關於這方面的好文章 - 我無法想象這是一件不尋常的事情,但我似乎正在努力尋找如何做到這一點的任何事情(可能是週一早上的大腦)。我已經開始執行一些代碼,看文章http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/,它似乎開始關閉,但我無法找到「正確」的方式從httpContext獲取調用控制器和操作值 - 我可能會欺騙一點點的代碼從請求url中提取它們,但這對我來說並不合適,我寧願正確地做。
乾杯
MH