有没有一种方法来查看HttpRuntime.Cache?(Is there a way to vie

2019-09-23 00:49发布

我有一个存储验证的用户在HttpRuntime.Cache令牌在所有后续请求中使用web服务。 缓存的项目有24小时就可以了滑动过期。

其次我有一个执行ping此WebService每15秒一个vb.net应用程序。 它通过认证一次,然后用于所有后续请求缓存的令牌。 我的问题是应用程序出现在时间小于24小时滑动过期随机间隔失去认证。 然而,随着越来越它每次ping操作15秒认证应该永不过期。

我正在寻找一种方式来查看HttpRuntime.cache尝试和确定问题出在web服务安全方法或vb.net应用程序内。 我能以某种方式查看HttpRuntime.cache?

该web服务是用asp.net 2.0在Windows Server 2008上建立了一个网页表单的网站的一部分。

Answer 1:

因为他们的系统生成的GUID值与用户名作为值我的钥匙的名称是未知的。 因此,为了查看缓存集合,这是我用一个简单的循环如下不明。

Dim CacheEnum As IDictionaryEnumerator = Cache.GetEnumerator()
While CacheEnum.MoveNext()
    Dim cacheItem As String = Server.HtmlEncode(CacheEnum.Entry.Key.ToString())
    Dim cacheItem2 As String = Server.HtmlEncode(CacheEnum.Entry.Value.ToString())
    Response.Write(cacheItem & ":" & cacheItem2 & "<br />")
End While

希望这可以帮助别人。



Answer 2:

首先,HttpRuntime.Cache不会存储用户认证信息的最佳场所。 您应该改用HttpContext.Current.Session来存储这些数据。 从技术上讲,高速缓存被允许以自己的意志为“流行”在这件事(当它决定)。

如果你确实需要使用缓存,你可以检查你的产品在缓存中通过简单地做:

HttpRuntime.Cache["Key"] == null


文章来源: Is there a way to view the HttpRuntime.Cache?
标签: webforms