C# ASP.NET核心标识-在登录/注销后阻止后退按钮?

C# ASP.NET核心标识-在登录/注销后阻止后退按钮?,c#,asp.net,asp.net-core,asp.net-identity,asp.net-core-identity,C#,Asp.net,Asp.net Core,Asp.net Identity,Asp.net Core Identity,我已经尝试了很多方法来阻止用户在成功登录和注销后访问他们不应该看到的页面。登录后,用户可以单击“上一步”,在仍然登录的情况下访问登录页面。注销后,他们可以单击“上一步”并访问每个页面(尽管在本例中相关的控制器上有一个[Authorize]属性。注销后,当他们单击“上一步”并(例如)登录到主页上时,仍会显示用户名。(例如,“欢迎,[name]”) 我已尝试将[ResponseCache(Location=ResponseCache.None,NoStore=true)]添加到我的控制器,并将“自定

我已经尝试了很多方法来阻止用户在成功登录和注销后访问他们不应该看到的页面。登录后,用户可以单击“上一步”,在仍然登录的情况下访问登录页面。注销后,他们可以单击“上一步”并访问每个页面(尽管在本例中相关的控制器上有一个
[Authorize]
属性。注销后,当他们单击“上一步”并(例如)登录到主页上时,仍会显示用户名。(例如,“欢迎,[name]”)

我已尝试将
[ResponseCache(Location=ResponseCache.None,NoStore=true)]
添加到我的控制器,并将“自定义缓存筛选器”添加到我从

如何在Asp.net core Identity中正确执行此操作,我感到困惑。通过“应用程序”选项卡下的“检查元素”选项,在缓存或应用程序存储中从来没有任何内容。(老实说,我不确定这是否相关。)

编辑: 我试着把:

    <meta http-equiv="cache-control" content="max-age=0" />
    <meta http-equiv="cache-control" content="no-cache" />
    <meta http-equiv="expires" content="0" />
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
    <meta http-equiv="pragma" content="no-cache" />


在我的
\u Layout.cshtml
页面的头部,与我的控制器上的
ResponseCache
属性相结合,但仍然没有运气。

这在很大程度上取决于浏览器如何处理页面缓存。无论您做什么,浏览器都可以像以前一样显示上一页。无论如何,您尝试过这个吗?(查看评论)@Andrew谢谢,我会检查一下的!@Andrew刚刚试用过,但它不起作用。有很多解决方案适用于MVC之类的,但是当涉及到核心时,就不多了。我的意思是,我在我的问题中发布的那个解决方案,但由于某种原因也不起作用。这个解决方案更多的是与浏览器相关的,而不是与服务器相关的。你必须告诉我e浏览器首先不缓存页面。如果浏览器在单击“上一步”时缓存页面,则甚至不会联系服务器,因此此时您无法进行任何操作。您需要在页面标题中添加这些元标记,以便告诉浏览器如何操作。如果其中任何一个没有帮助,我没有想法,但一定有办法!@Andrew I'll只要继续看。我一直使用Javascript的方式来做这件事,但是人们可以禁用它。谢谢你的帮助,我很感激!