HttpRuntime.Cache在哪里存储数据?

Abh*_*Net 5 c# asp.net

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

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

Cache.Insert("Id", 123); 
Run Code Online (Sandbox Code Playgroud)

将无法在Handler中使用。因此,我尝试了HTTPRuntime.cache。但是经过一些研究,我发现HTTPRuntime.cache对于整个应用程序是通用的。我不完全了解“整个应用程序”。这是否意味着它由访问我们应用程序的不同计算机上的所有用户共享?还是意味着它由访问我们应用程序的一台计算机上的所有用户共享。因为如果是后者,我可以接受。那么,HTTPRuntime.cache是​​一种为一个浏览器(或一台计算机)缓存数据的好方法,还是有另一种更好的方法来实现浏览器缓存来存储数据?

Nik*_*l D 5

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

您应该了解Viewstate,Cache和Session之间的区别