0

请参考链接

为什么即使在所有销毁代码之后会话变量的值仍然存在?

在上面的问题是我做的登录功能失败了,因为浏览器正在显示页面的缓存版本,我也不知道为什么能够在一定的时间限制内执行所有功能,之后它实现了它被缓存了!!

所以,

如何删除网站的缓存版本,

或者

如何告诉不要在缓存中复制我的副本!!!

通过使用 c#

4

4 回答 4

2

您可以做的大多数事情是将过期元标记添加到您不希望浏览器缓存的页面

<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="No-Cache, No-Store">

或者在 ASP.NET 中添加 Page 标记之后

<%@ OutputCache Duration="0" Location="none" NoStore="true" %>

在 C# 后面的代码中

Response.Cache.SetNoStore();
Response.Cache.SetExpires(DateTime.Now);
Response.Cache.SetCacheability(HttpCacheability.NoCache);

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/06bh14hk(v=VS.100).aspx

更详细的文章在这里http://www.mnot.net/cache_docs/

编辑:在 Alxandr 发表评论后更新

于 2010-11-14T04:46:09.390 回答
1

听起来您很关心客户端页面的缓存版本。如果这是真的,你有两种主要的方法来解决这个问题。您可以将 no-cache 属性添加到 HTTP 标头或页面的 META 标记。HTTP Header 方法是推荐的方法

META标签方法

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

HTTP 标头方法

Cache-Control: max-age=3600, must-revalidate

我下面引用的链接将为您提供有关 HTTP 标头和 META 标头的大量信息。我建议您阅读它以了解选项以及查看各种语言和 HTTP 服务器的示例实现。

于 2010-11-14T04:52:00.427 回答
0

甜甜圈缓存和仅服务器端缓存将解决此问题。在孔(甜甜圈中心)中,您验证用户的登录。如果它无效执行重定向 301 到登录页面。

于 2010-11-14T21:39:28.287 回答
-1

浏览器会在缓存中复制它。大喊大叫不会让它消失。除非您在其他地方做愚蠢的事情,否则这不应该是安全风险。即使您确实存在阻止缓存制作副本的安全问题,也无法解决问题。

所以:您可以阻止浏览器缓存,但这不是您想要做的。浏览器仍会将网页的副本保存到硬盘驱动器中,只是不会尝试显示它。这些都不是安全问题。

于 2010-11-14T04:48:43.007 回答