har*_*don 5 .net c# asp.net-mvc outputcache
是否可以根据会话中的某些值改变MVC中的输出缓存?我已经阅读了很多关于使用varybycustom功能并覆盖Global.asax中的GetVaryByCustomString的内容,但此时会话不可用.
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom == "somekey")
//Want to check the session here (but it isn't available).
return base.GetVaryByCustomString(context, custom);
}
Run Code Online (Sandbox Code Playgroud)
我理解这是因为会话直到稍后在请求管道中才创建.
我担心的是,如果不根据用户的会话改变缓存,页面(根据用户在会话中的内容而改变,具有特定于该用户的其他HTML等)将被缓存(因为URL是相同的)并且由我们的负载均衡器,代理服务器等提供服务,然后在页面上与其他人的会话信息一起提供给其他请求!
URL相同的原因是用户以"访客"身份进入,输入一些信息(POST),这会被验证并存储在会话中,然后将它们重新定向回同一页面(现在应该是根据会话数据特定于用户).
页面本身应该正常缓存,因为如果"访客"访问相同的网址,它应该每次都提供相同的"标准"页面.
有可能以这种方式改变缓存吗?
| 归档时间: |
|
| 查看次数: |
3665 次 |
| 最近记录: |