我使用Asp.Net MVC 3,C#和ApplicationServices Membership(起诉MS Sql 2008 db的标准方式)。
我的文件夹结构是
CONTROLLERS
-- PageAController.cs
-- ADMIN
-- PageBController.cs
我有一些角色为“AdminRole”的用户,有些没有关联的规则(匿名)。
我希望拒绝访问特定的控制器,并显示PageAController.cs
的LOGIN页面以及文件夹ADMIN
中的所有控制器,以查找不具有“AdminRole”的用户相关联。
答案 0 :(得分:9)
希望这有帮助
您无法使用路由或web.config文件来保护您的MVC 应用。保护MVC应用程序的唯一受支持的方法是 将[Authorize]属性应用于每个控制器和操作 方法(登录/注册方法除外)。安全 基于当前区域的决定是一个非常糟糕的事情,并将开放 您的漏洞应用
[Authorize(Roles="AdminRole")]
public class PageAController
{
}
[Authorize(Roles="AdminRole,AnotherRole")]
public class PageBController
{
}