为asp.net中的每个用户存储不同的缓存值

时间:2013-09-15 09:18:38

标签: c# asp.net caching

Cache.Insert("City", UserCity,
             null, System.Web.Caching.Cache.NoAbsoluteExpiration,
             new TimeSpan(24, 0, 0));

我想为特定用户保存24小时缓存,但每当我打开页面时,都会显示所有用户的相同缓存详细信息。我如何区分每个用户?

1 个答案:

答案 0 :(得分:1)

忽略这是否是一个好主意的考虑因素,您可以通过在缓存键中包含唯一标识用户的内容(例如userName)来实现此目的:

string key = HttpContext.Current.User.Identity.Name + "-City";
Cache.Insert(key,...)

如果您可以拥有大量用户,则将特定于用户的数据放入缓存中是不可扩展的,但在某些情况下可能会合适。例如,在Intranet应用程序中使用的自定义RoleProvider具有已知的并发用户数上限,以便在缓存中存储用户特定的角色,这是合理的。