我正在开发一个asp.net网站,我没有使用asp.net的内置身份验证控件。我为网站用户创建了手动表。
我想要的是如下
答案 0 :(得分:2)
要防止用户在按下后退按钮时看到上一页,您需要指示浏览器不要缓存此页面:
Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
您可以将此代码放在所有经过身份验证的页面中,从而防止它们在客户端浏览器上缓存。
答案 1 :(得分:1)
对于不被缓存的页面,浏览器需要对缓存指令做出适当的响应,但不能保证这对每个浏览器都有效! (一个适当的邪恶的人可以编写自己的浏览器来忽略缓存信息,或写一个代理来剥离它...)
所以你无法让它在100%的时间内正常工作,但你总是要面对用户可以轻松截取屏幕截图,打印页面,在磁盘上保存副本等问题。一旦你给他们喂了一页......
答案 2 :(得分:1)
你的答案是:
当用户按下退出时。 (用户转到特定页面 - 示例 - default.aspx) 您可以添加LinkButton作为Signout链接,并在您可以编写的click事件处理程序中添加 的Response.Redirect( “Default.aspx的”);
for now当用户按下浏览器的“后退”按钮时不能转到上一页 //将以下代码添加到页面后面的代码中
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
string strDisAbleBackButton;
strDisAbleBackButton = "<script language="javascript">\n";
strDisAbleBackButton += "window.history.forward(1);\n";
strDisAbleBackButton += "\n</script>";
ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton);
}
请参阅csharpdotnetfreak.blogspot.com