我正在读一本关于MVC2,并在的OutputCache部分它指出:的OutputCache和授权在MVC3过滤器
警告在前面的“授权过滤器是怎样互动 与输出缓存,”我解释说, [授权]具有特殊的 行为,以确保未经授权的访问者因为已经被缓存而无法获取敏感的 信息。 但是,除非您专门阻止它,否则缓存的输出可能会被传送给不同的授权用户,而不是最初为其生成的用户。一个防止的办法是 实现特定内容项目作为 授权过滤器(从AuthorizeAttribute派生)的访问控制,而不是 简单地执行授权逻辑内嵌在一个操作方法, 因为AuthorizeAttribute知道如何避免被绕过输出 缓存。仔细测试以确保授权和输出缓存以您期望的方式进行交互。
这在MVC3中仍然如此吗?
如果是肯定的,那么防止发生这种情况的方法是什么? (因为书中的解释过于模糊)。
问候。
太好了,无论如何我会开始赏金,所以也许我可以捕捉更多的解释:D感谢一百万。 – vtortola
因此,如果我使用“OutputCacheAttribute.VaryByHeader = Cookie”,它将在授权方面安全吗?我想要缓存的是呈现的页面,因为它们中的一些很大并且具有很多生成逻辑。 – vtortola
这是一个选项。但如果信息是关键的,那么你应该不会依赖于存储在客户端的cookie。 – fengd