我有一个用户必须登录的应用程序。 登录后,他们可以对我们的数据库执行搜索。
他们的身份会影响搜索结果。
我希望使用结果的缓存页面。 VaryByParam听起来不错。
但是,我不理解在返回页面的缓存版本时会触发或不触发的事件。
我不希望其他用户尝试提供可能指示其他用户帐户的网址参数,从而允许他们访问其他人的结果。
因此,我需要一个服务器事件,即使从缓存中返回页面时也会触发该事件,以便我可以根据会话版本检查此ID Param。
然而,这也意味着我无法在此事件中执行搜索,因为它始终会运行,因此无法实现缓存。所以我需要另一个事件,只有在从缓存中检索 页面时才会触发。
哪些事件在这两种情况下运行?
答案 0 :(得分:1)
您是否考虑过设置响应缓存属性以允许客户端计算机缓存结果?在响应上使用Cache策略的SetCacheability方法将可缓存性设置为私有。
如果每个用户可能有不同的结果,您实际上不需要服务器缓存,请让客户端缓存来完成工作。