如何在ASP.NET MVC中基于每个用户删除输出缓存?

Jam*_*lak 5 c# asp.net-mvc caching asp.net-mvc-3

我正在使用VaryByCustom每个浏览器和每个用户创建一个输出缓存:

[OutputCache(Duration = 6000, VaryByParam = "*", VaryByCustom="browser;userName")]
Run Code Online (Sandbox Code Playgroud)

(我已经覆盖GetVaryByCustomString()了这项工作.)

我需要能够删除单个用户的输出缓存,如果可能的话,不会使不同用户的输出缓存失效.我已经读过HttpResponse.RemoveOutputCacheItem(),但这可以通过删除基于路径的输出缓存来实现.有没有办法根据VaryByCustom字符串执行此操作?

dov*_*ove 0

为什么不在参数中包含用户,然后通过 VaryByParam 为每个用户提供参数。