【发布时间】:2021-03-17 10:33:21
【问题描述】:
我使用asp net core mvc + js。我的一种页面有缓存。
[ResponseCache(Location = ResponseCacheLocation.Client, Duration = 60)]
public async Task<IActionResult> StaticContent(string path)
{
// code
}
用户在此页面上注销时遇到问题。用户在注销后看到他的帐户,因为页面被缓存。如果刷新页面缓存清除并且用户看不到帐户。
我在 js 上尝试 location.reload(); 注销时单击但重新加载工作早于服务器上的注销工作。我尝试更改 Vary 标头,但我更改了仅在注销后重定向的 Vary 页面
注销后如何清除缓存?有什么想法吗?
【问题讨论】:
-
“用户看到他的帐户” - 问题是什么?即使在注销后也是他的帐户。
-
@Andreas 用户已退出其帐户,但可以看到
-
为什么不将此页面从缓存中排除?
-
@Adlorem 因为这不是一页而是很多页
-
我发现这个奇怪的如果刷新页面缓存清除并且用户看不到帐户 - 如果它被缓存(而不取决于登录状态),它只会在到期时被清除。所以刷新页面不会清除缓存,除非它是在到期后立即完成的。因此,请重试您的步骤并确认这一事实。如果它仍然存在,则必须有一些东西从服务器端清除缓存,例如在您的中间件中......很难说。
标签: javascript asp.net-mvc asp.net-core browser-cache