2

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

我的文件夹结构是

CONTROLLERS
-- PageAController.cs
-- ADMIN
   -- PageBController.cs

我有一个用户,一些具有角色“AdminRole”,一些没有关联的规则(匿名用户)。

我希望拒绝访问特定的控制器,并为没有关联“AdminRole”的用户显示PageAController.cs文件夹内所有控制器的登录页面。ADMIN

  • 该怎么走?
  • 我需要设置 Web.Config... 怎么办?
4

1 回答 1

9

希望这可以帮助

使用 AuthorizeAttribute

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

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

}

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

}
于 2012-10-04T08:59:53.383 回答