gpt4 book ai didi

asp.net - 仅为匿名用户缓存 ASP.NET 页面

转载 作者:行者123 更新时间:2023-12-04 19:23:22 25 4
gpt4 key购买 nike

是否有一种简单的方法可以仅为匿名用户缓存 ASP.NET 整个页面(使用表单例份验证)?

上下文:我正在创建一个网站,其中向匿名用户显示的页面大多是完全静态的,但为登录用户显示的页面则不是。

当然,我可以通过背后的代码手动完成此操作,但我认为可能有更好/更简单/更快的方法。

最佳答案

我正在使用 asp.net MVC,所以我在我的 Controller 中做了这个

if (User.Identity.IsAuthenticated) {
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddMinutes(-1));
Response.Cache.SetNoStore();
Response.Cache.SetNoServerCaching();
}
else {
Response.Cache.VaryByParams["id"] = true; // this is a details page
Response.Cache.SetVaryByCustom("username"); // see global.asax.cs GetVaryByCustomString()
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Server);
Response.Cache.SetValidUntilExpires(true);
}

我这样做的原因(而不是声明性地)是我还需要能够通过配置打开和关闭它(此处未显示,但在 if 中对我的配置变量进行了额外检查)。

您仍然需要不同的用户名,否则当出现登录用户时您将不会执行此代码。我的 GetVaryByCustomString 函数在未通过身份验证时返回“匿名”或在可用时返回用户名。

关于asp.net - 仅为匿名用户缓存 ASP.NET 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com