我想避免訪問一些行動取決於我有(IsInRole)的角色,我該怎麼做(代碼下面的correect?)是否有可能定義在一個配置文件的角色列表誰允許訪問此操作?在我爲例,在配置文件中安全在ASP.NET MVC的消息和配置文件
[Authorize(Roles="GROUP1,GROUP3")]
public ActionResult MyAction(int id)
{
return View(myView);
}
感謝定義「GROUP1」和「GROUP3」,
我想避免訪問一些行動取決於我有(IsInRole)的角色,我該怎麼做(代碼下面的correect?)是否有可能定義在一個配置文件的角色列表誰允許訪問此操作?在我爲例,在配置文件中安全在ASP.NET MVC的消息和配置文件
[Authorize(Roles="GROUP1,GROUP3")]
public ActionResult MyAction(int id)
{
return View(myView);
}
感謝定義「GROUP1」和「GROUP3」,
在屬性初始化中使用的值必須在編譯時是已知的。
這意味着您無法從配置中獲取它們。
使用location
和authorization
web.config設置是強烈反對,因爲它會在你的MVC應用程序打開的安全漏洞:
http://forums.asp.net/t/1583850.aspx/1/10
你可能需要一個自定義屬性,你可以用它來查看授權規則。你可以在這裏看看一個例子:
http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx
+1 - OP可以可能需要通過檢查'RouteData'的屬性'OnAuthorization'方法內推出自己的授權屬性要做到這一點,並在那一點執行數據源查找。 –