【问题标题】:Forms Authentication (restrict an area)表单验证(限制区域)
【发布时间】:2011-03-02 16:09:37
【问题描述】:

我正在使用带有 MySQL 的 asp.net mvc 开发一个网站,我需要为用户创建一个简单的限制区域来更新网站中的一些信息。因此,我在 mvc 应用程序中创建了一个名为“Admin”的区域,并且我知道如何使用 Forms 身份验证和 Autorize 属性来保护它!它工作正常,但在我所在区域的每个控制器中,我必须设置 Autorize 属性来保护它们。有什么方法可以保护 Web.config 中的所有区域?我该怎么做?

谢谢

干杯

【问题讨论】:

    标签: asp.net-mvc security forms-authentication roles asp.net-mvc-areas


    【解决方案1】:

    由于您想使用 Web.config,所以您的问题有点偏离,但您可以使用 PostSharp(面向方面​​的框架)在方法上注入属性。

    【讨论】:

      【解决方案2】:

      不得在 MVC 应用程序中使用基于位置的 Web.config 授权。这样做会导致您的网站出现安全漏洞。

      获得您正在寻找的行为的最简单方法是拥有一个具有 [Authorize] 属性的 AdminBaseController,然后让您的管理区域中的每个控制器直接子类此类型。该属性将从基类型流向子类类型。

      【讨论】:

      • 这是唯一的方法吗?因为这个解决方案看起来不是很优雅,所以我需要确保我的所有控制器都是基控制器的子类。我还不如将所需的属性添加到所有控制器。
      • @RosdiKasim,您可以根据需要将授权过滤器添加到全局过滤器列表中。然后每个控制器都会自动获取它。如果您这样做,请将 [AllowAnonymous] 属性放在各个控制器或操作上,以使其退出全局授权过滤器。
      • 你能告诉我为什么它会导致漏洞吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多