HttpRuntime.Cache在哪里存储数据?

时间:2012-06-04 05:44:53

标签: c# asp.net

我正在尝试使用缓存功能实现Web应用程序。我需要缓存的原因是我们有一个允许用户访问在线课程的应用程序。现在,一旦用户登录,我就会根据我们的数据库验证他。一旦验证,我想将用户ID和课程ID存储在缓存中20分钟,这样如果他再次请求它,我可以从缓存对象中检索用户ID和课程ID的值,如果有效则为他提供访问权限 由于某些原因,我不能在此应用程序中使用Session变量,因此它们不是一个选项。

现在,我的应用程序中的缓存代码位于HTTP Handler(.ashx文件)中。现在我尝试像调用aspx页面一样调用缓存对象,但我不能,可能是因为它是一个处理程序而不是一个网页。 所以,

Cache.Insert("Id", 123); 

在Handler中不起作用。然后我尝试了HTTPRuntime.cache。但经过一些研究后,我发现HTTPRuntime.cache对整个应用程序来说都很常见。我不完全理解“整个申请”。是否意味着访问我们的应用程序的不同计算机上的所有用户共享它?或者它是否意味着它是由访问我们的应用程序的一台计算机上的所有用户共享的。因为如果是后者我就可以了。 那么HTTPRuntime.cache是​​一种缓存一个浏览器(或一台计算机)数据的好方法,还是有一种不同的更好的方法来实现浏览器缓存来存储数据?

1 个答案:

答案 0 :(得分:4)

缓存存储在Web服务器内存中。

您应该了解the differences between Viewstate, Cache and Session