我试图限制用户在登录/注销到应用程序后单击后退按钮。
如果用户登录到应用程序,则单击后退按钮后不应显示登录视图,如果用户从应用程序注销,则不应显示单击后退按钮LogOff视图。
我已经使用了链接数量给出的缓存技术,但似乎不起作用。
此CacheAfterLogout链接完全按原样完成,仍然无法解决问题。我正在使用asp.net身份框架。
有人可以为此提供帮助吗?
答案 0 :(得分:3)
要禁用缓存,您可以将以下内容应用于您希望在
上禁用缓存的每个控制器[ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)]
您还可以设置named cache profiles并在运行时配置设置。
答案 1 :(得分:0)
可以通过在要禁用缓存的每个控制器上应用 [ResponseCache(Location = ResponseCacheLocation.None,NoStore = true)] 来禁用缓存。
通过在使用ASP.Net Core 1.0 .- *和MVC6配置MVC服务的同时在startup.cs中添加自定义过滤器,可以全局应用于所有控制器。
首先创建一个实现ResponseCacheAttribute的自定义缓存过滤器,如下所示
public class ResponseCacheFilter : ResponseCacheAttribute
{
public ResponseCacheFilter() : base()
{
Location = ResponseCacheLocation.None;
NoStore = true;
}
}
这应该在startup.cs文件中添加如下。
public void ConfigureServices(IServiceCollection services)
{
// Add framework and custom services.
services.AddMvc(config =>
{
config.Filters.Add(new ResponseCacheFilter());
});
}
在https://docs.asp.net/en/latest/performance/caching/response.html#responsecache-attribute
查看ResponseCache的配置答案 2 :(得分:-1)
只需在Global.asax.cs中添加此代码
protected void Application_BeginRequest()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
}
答案 3 :(得分:-3)
只需将这些行添加到 Global.asax.cs 文件中即可。
protected void Application_BeginRequest()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
}