对于我的应用程序,我想在记录之前清除缓存。 但是,如果有人使用不同的帐户登录,我想清除缓存,以便刷新页面并且不保留以前用户的值。
如何在C#中执行此操作?
答案 0 :(得分:0)
创建if condition
以检查登录帐户。然后使用此reference中的代码清除缓存(如果满足条件)。
答案 1 :(得分:0)
使用此代码可以清除浏览器缓存。
您也可以在网站的LogOut
上使用它,而不是login
。
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
或者你可以这样做
https://stackoverflow.com/a/2876701/2218635
您可以通过这种方式定义缓存
HttpContextBase httpContext = filterContext.HttpContext; httpContext.Response.AddCacheItemDependency( “页面”);
并在登录时设置缓存
protected void Application_Start()
{
HttpRuntime.Cache.Insert("Pages", DateTime.Now);
}
并在退出时清除缓存
HttpRuntime.Cache.Insert("Pages", DateTime.Now);
更多细节
答案 2 :(得分:0)
您无法编写代码来清除客户端浏览器缓存。当您首先将日期发送到浏览器时,您可以为数据设置控制缓存策略。
例如,如果您最初有一个图像文件,并且在浏览器检索到它时将过期时间设置为午夜,则浏览器将不会在午夜之前从其缓存中删除该文件。如果您需要立即强制浏览器获取文件的不同版本,则URI必须更改 - 即将文件重命名为新的(版本2)名称。
您只能控制发送到浏览器(或介入的代理服务器,或两者)的项目的缓存策略。浏览器可以忽略该策略(如果它想成为一个非常糟糕的浏览器),但是您无法发送任何可以清除预先存在的浏览器缓存的内容。
策略(在http标头中),设置诸如到期时间(GMT),相对时间(即缓存延迟)以及无缓存指令之类的内容。您可以为浏览器缓存(或代理和共享缓存)设置此项。但是一旦它越过电线,你就无法清除它。
ADDED
我花了一些时间才找到this article explaining how browser caching works。比W3C对浏览器缓存的解释更容易理解