我將ASP.NET MVC添加到現有的WebForms應用程序中。目前,我不關心認證/登錄,因爲這部分是由現有代碼(Forms認證)處理的。ASP.NET MVC3中基於權限的授權
在現有的WebForms應用程序中,我們爲每個頁面提供了完全自定義的基於權限的授權。因此,每個用戶都有一組權限,列出他可以訪問的頁面。
現在我需要決定如何使用相同的權限系統來限制對特定MVC控制器和操作的訪問。
據我所知,對於ASP.NET MVC有一個標準的AuthorizeAttribute我可以指定角色。我也發現了一些文章這表明指定的權限,而不是角色 - 那麼它可能做這樣的事情:
[CustomAuthorize(Roles = "View products, Edit products")]
通過擴展AuthorizeAttribute,我還可以定義我是如何存儲和訪問權限。
這個解決方案對我來說是可以接受的(儘管改變角色的語義有點味道)。
但在提交之前,我想看看還有哪些其他選項。這就是我陷入困境的地方 - 我還沒有找到關於ASP.NET MVC授權的不同方法的完整概述。我也想知道所有的安全概念(如表單身份驗證,成員資格提供者,授權屬性,IPrincipal等)是如何相互關聯的,以及它們應該如何協同工作。
這是類似於什麼在這裏嘗試:http://stackoverflow.com/questions/10338734/custom-security-scenario-in-asp-net-mvc/ – antijon 2012-04-26 21:42:01
@antijon據我瞭解,它類似於實現一個自定義的AuthorizeAttribute。但我想更詳細地瞭解其他選項及其優缺點。 – 2012-04-26 21:48:01