Browser 使用浏览器返回注销后,如何停止网页查看
我有一个ASP.NET网站。我们有两种类型的登录 1.使用者 2.管理员 在测试过程中,我面临以下问题 问题陈述:假设我通过用户登录登录并浏览所有页面,比如在用户的任何页面上单击注销按钮,它将在登录页面重定向我 现在的问题来了,当我使用浏览器回来,它显示我的用户的页面,但实际上我应该无法查看该页面后注销 我的功能是正确的,因为若我在注销后单击页面,它将再次在登录页面重定向我,但我的问题是,我不应该在注销后使用浏览器返回到userpage。 [就像谷歌和雅虎那样] 管理员登录也是如此Browser 使用浏览器返回注销后,如何停止网页查看,browser,caching,asp.net-3.5,Browser,Caching,Asp.net 3.5,我有一个ASP.NET网站。我们有两种类型的登录 1.使用者 2.管理员 在测试过程中,我面临以下问题 问题陈述:假设我通过用户登录登录并浏览所有页面,比如在用户的任何页面上单击注销按钮,它将在登录页面重定向我 现在的问题来了,当我使用浏览器回来,它显示我的用户的页面,但实际上我应该无法查看该页面后注销 我的功能是正确的,因为若我在注销后单击页面,它将再次在登录页面重定向我,但我的问题是,我不应该在注销后使用浏览器返回到userpage。 [就像谷歌和雅虎那样] 管理员登录也是如此 请帮我解决问
请帮我解决问题。您必须禁用缓存
public void Page_Load()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache)
...
}
如何登录/注销?正确的方法是在登录时将用户信息保存到会话中,并在注销时清除该会话 在每个页面的PageLoad方法中,测试会话是否有有效的信息,如果没有,则停止页面加载。 这样,当用户注销并单击back时,会话应该是空的并且不会加载,然后您可以重定向到登录页面。
如果您需要一些代码,请回复问题是您可以按back键以缓存页面。您可以指示浏览器每次都从服务器获取页面 您需要生成以下所有标题:
Pragma: no-cache
Cache-Control: max-age=1
Expires: Tue, 1 May 1985 01:10:00 GMT
问题是并非所有浏览器都支持所有选项,因此您必须包含所有这些标题,以确保所有浏览器不会缓存您的页面
需要所有这些头的另一个原因是,在某些情况下,即使web浏览器尊重expires头,您和仍在缓存页面的用户之间也可能存在配置错误的代理服务器
在ASP中,您可能希望执行以下操作:
public void Page_Load() {
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
Response.Expires = -1500;
Response.CacheControl = "no-cache";
Response.Cache.SetETag(randomString);
}
我想你必须设定以下条件
Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
当用户按下“后退”按钮时,这将导致您的页面也回发,因此您可以检查他是否仍在登录,以防将他重定向到其他位置。看看我以前也遇到过同样的问题。使用随机etag头也有帮助。Ie将页面标记为每次下载的新资源。谢谢,你能帮助我吗,我如何生成上述字符?特别是在ASP.NET中,我有我的aspx的母版页。母版页中提供了注销链接。是否有必要在master和aspx中同时写入上述代码行?如果我只把它们写在母版页中,它会起作用吗?什么是正确的方法?您的aspx页面是一个由母版页包装的web内容表单。所以这取决于你把代码放在哪里。如果您只想禁用该特定页面的缓存,请将其放置在aspx页面加载中,否则也可以将其放置在母版页的codebehind中,从而使其适用于应用程序的所有页面。您应该为所有动态页面启用缓存。ie You any page You don't want the web browser show old/out dated information.puh现在没有尝试过,但我会将它放在页面的PageLoad中,您需要检查用户是否登录。基本上是在用户单击其他页面上的后退按钮后显示的页面。这在大多数情况下只能防止出现问题。我见过一些客户端站点,在生成唯一/随机etag之前,这些站点都会缓存东西。由配置非常糟糕的代理服务器引起。