【发布时间】:2013-03-19 12:35:23
【问题描述】:
我想缓存我的 MVC 操作的输出。然而:
1) 如果我在全局范围内应用OutputCacheAttribute,这是有风险的,因为它会为所有用户缓存所有内容。
2) 如果我在全局范围内应用OutputCacheAttribute,然后将Authorize 属性应用于那些需要授权的操作,那仍然不能解决问题。无论用户是否被授权,所有输出仍然被缓存。
3) 如果我只在选择的操作上应用OutputCacheAttribute(不是全局但),并且在所有需要授权的操作上使用AuthorizeAttribute,那么就没有安全威胁,但有性能成本。每个需要身份验证的页面都需要发出新的 Http 请求。
我想找到一个中间地带,以便在客户端缓存所选页面和/或所选类型的请求 (HTTP GET),但前提是用户已通过身份验证。如果用户注销并访问缓存页面/动作的 url,他一定无法看到内容。
有没有办法实现这个?
【问题讨论】:
标签: asp.net asp.net-mvc caching outputcache output-caching