如何限制对MVC中的Controller或文件夹的访问?

Gib*_*boK 2 asp.net-mvc asp.net-membership asp.net-mvc-3

我使用Asp.Net MVC 3,C#和ApplicationServices Membership(标准方式起诉MS Sql 2008 db).

我的文件夹结构是

CONTROLLERS
-- PageAController.cs
-- ADMIN
   -- PageBController.cs
Run Code Online (Sandbox Code Playgroud)

我有一些用户角色为"AdminRole",有些没有相关规则(匿名者).

我希望DENY访问特定的Controller并显示一个LOGIN页面,PageAController.cs以及为ADMIN没有"AdminRole"关联的用户显示文件夹内的所有控制器.

  • 怎么走?
  • 我需要设置Web.Config ......怎么样?

cod*_*biz 9

希望这可以帮助

使用AuthorizeAttribute

您不能使用路由或web.config文件来保护您的MVC应用程序.保护MVC应用程序的唯一受支持的方法是将[Authorize]属性应用于每个控制器和操作方法(登录/注册方法除外).根据当前区域做出安全决策是非常糟糕的事情,并会将您的应用程序打开到漏洞中

[Authorize(Roles="AdminRole")]
public class PageAController
{

}

[Authorize(Roles="AdminRole,AnotherRole")]
public class PageBController
{

}
Run Code Online (Sandbox Code Playgroud)