如何使用页面 OutputCache 和 VaryByCustom 来考虑 ASP.NET 2.0 中的多个条件?
我们有一个多语言网站,并且在用户登录后具有一些个性化(例如,标题显示不同的链接、用户的用户名等),但我们希望缓存特定的面向公众的页面,这些页面是之前页面的版本用户登录(例如,对于只是浏览网站的人)。
在 ASP.NET 2.0 站点中使用 VaryByCustom 时,有没有办法考虑以下多个条件(是的,我们最终会升级,但不是现在),以及如何连接页面以将多个条件传递到该方法中?
- 自定义 ASP.NET 会员配置文件 属性称为 配置文件.首选项.语言(我们 将检查 URL 方案并设置 将 Language 属性设置为有效 VaryByCustom 之前的值)。
- 用户的浏览器
- 任何查询字符串/参数
这三种情况将允许我们缓存经常访问的公共页面,并且不必计算事物/访问数据库或其他缓存来获取菜单项的源等不经常更改的页面。
任何帮助将不胜感激。
谢谢你,
We have a site that is multi-lingual and has some personalization after the user's login (e.g. headers show different links, the user's username, etc.), but we would like to cache particular public facing pages that are the versions of the page before the user logs in (e.g. for people just browsing the site).
Is there a way to take the following multiple criteria into account when using VaryByCustom in an ASP.NET 2.0 site (yes, we will eventually upgrade, but not now) and how would you hook a page up to pass multiple criteria into the method?
- A custom ASP.NET membership profile
property called
Profile.Preferences.Language (we
will inspect the URL scheme and set
the Language property to a valid
value before VaryByCustom). - The user's browser
- Any querystrings/params
Those three cases would allow us to cache our frequently hit public pages and keep from having to compute things/hit the DB or other caches to get the source of menu items, etc. for pages that infrequently change.
Any help would be greatly appreciated.
Thank you,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于第 2 和第 3 个,您可以使用以下内容
抱歉,我无法为您提供第 1 个帮助
For number 2 and 3 you can use the following
Sorry I can't help you for the 1st one
我建议重写 Global.asax 中的 GetVaryByCustomString 方法,以根据上述三个条件创建您自己的缓存键。
并修改outputcache指令以利用这个新的cachekey生成逻辑。
I would suggest overriding the GetVaryByCustomString method in the Global.asax to create your own cachekey based on the above three criteria.
And modifying the outputcache directive to utilize this new cachekey generation logic.