【发布时间】:2014-05-31 09:20:50
【问题描述】:
我一直在对保护我的 MVC 5 应用程序的最佳方法进行大量研究。
我们有一个包含许多 WebAPI 控制器的 Web.csproj 以及一个包含两个区域的 MVC 站点 - 一个用于管理员,然后是面向公众的网站。
阅读this article which states that the Base Controller is best way后,我决定采用这种方法。
但是,我个人不同意使用基本控制器(出于我的某些原因,see this stackoverflow answer)。
那么,鉴于我使用的是 MVC 5(ASP.Net 身份和 OWIN 身份验证) - 任何人都可以阐明每种方法的优缺点吗?
【问题讨论】:
-
这篇文章不是展示了如何使用全局过滤器吗?我相信基本控制器被推荐用于 MVC 1 和 2....
-
@dima 是的,你是对的......我对文章底部的以下引用感到困惑:“让我非常清楚这一点。保护 MVC 的唯一受支持的方式应用程序是拥有一个具有 [Authorize] 属性的基类,然后让每个控制器类型子类化该基类型。任何其他方式都会打开一个安全漏洞。”但是,我认为是在尝试通过路由约束保护 MVC 应用程序的上下文中说的……一个严重的“不可以”。
-
他在某种程度上是对的,只是应该说关于全局过滤器....我不明白您为什么不利用全局过滤器并确保整个站点的安全并且只允许匿名访问某些操作,如登录、注册等
-
所以要回答您的问题 - 既不是,也不是基本控制器,也不是在每个控制器或操作上放置 Authorize 属性......全局过滤器是这些天要走的路......你不需要发明已经存在的东西
标签: asp.net-mvc-5 asp.net-identity owin authorize-attribute