当前位置:编程学习 > C#/ASP.NET >>

在ASP.net中如何禁止后退

我使用的是VS.net2005开发的,我是用Response.Redirect("")打开网页的,如何在新打开的网页能禁止后退。请高手指点
--------------------编程问答-------------------- http可以随便提交任何命令。如果你的程序是一个web上可靠的程序,其实首先应该把精力放在逻辑控制上,也就是重复提交和胡乱提交任何任何命令都能检查出来。不知道你们的项目有没有专业的测试人员或者懂点web测试的,如果有那么web测试大概就是按照信令来进行的,本来就是这个测试逻辑,你的程序想通过浏览器去“防止”页面提交的无序化有点幼稚。
--------------------编程问答-------------------- 有时候,防止后退是必须的,重复的检查逻辑,既会误导用户操作,也浪费服务器资源,减少BUG 是写代码的天职~

我记得
可以使用javascript 输出 history=-1 的方式,来消除浏览器回退~
具体JS 代码,你最好自己查吧~

==================================
小小姑娘
清早起床
提着裤子上茅房
茅房有人,没有办法
只好拉在裤子上..................
QQ:18163708;765835
MSN:yoursunboy@msn.com
Gtalk:yoursunboy@gmail.com
================================== --------------------编程问答-------------------- 不论你是否做好了“禁止后退”功能,都要测试信令被重复(以及更复杂情况下)提交时的业务逻辑。不能假设可以用界面上那点技巧来掩盖业务逻辑的错误。

反过来说,首先处理好业务逻辑的一致性,界面上的事是其次的。像这种毛病,甚至你根本不用去管它,就让用户去点后退按钮好了。 --------------------编程问答-------------------- http://www.jb51.net/html/200612/44/5664.htm --------------------编程问答-------------------- 支持sp1234

你能管得了客户端浏览器的行为吗?

不如多放点精力在逻辑上

即使回退,也是正常的 --------------------编程问答-------------------- 我的意思是说,不要用那个东西来掩盖你程序逻辑设计上的BUG。那个保证一致性的问题根本不是仅仅界面的职责,那个首先是业务逻辑的职责。 --------------------编程问答-------------------- 后台执行检查逻辑是必须的,但有些页面,让其失效,不可回访,是业务层面
有这样的需求,就有必要这么实现
完全两个层面.项目搞多些就能了解了!

==================================
小小姑娘
清早起床
提着裤子上茅房
茅房有人,没有办法
只好拉在裤子上..................
QQ:18163708;765835
MSN:yoursunboy@msn.com
Gtalk:yoursunboy@gmail.com
================================== --------------------编程问答-------------------- 举个例子:

在网上搜过一些东西过后按Ctrl+N键,你看到的东西就是页面的复制,对于asp.net来说这个复制页面与原来的页面同一个会话(Session集合相同),并且页面上了保留了当时的全部状态。我使用Ctrl+N的目的就是不想再一步步回到同一页面,只要将来我还要回到此地,我就直接预先复制一份。将来提交新的内容我会在复制页面上提交。 --------------------编程问答-------------------- 这是客户的需求,没有办法,不是你说怎么样就怎么样的,在业务逻辑上可以进行相应的控制,但是客户这样要求,我想因该尽力的满足客户的需求呀 --------------------编程问答-------------------- 楼上:你在业务逻辑上作了处理,那么后退的时候就会直接进入错误页面。因此在你不想搞得那么花哨的时候,你完全不用写一行代码就能禁止后退。 --------------------编程问答-------------------- 技术上是可以实现的
ie window的工具栏属性是可以用脚本设定的 --------------------编程问答-------------------- 嘿嘿
没有绝对的防御,没有绝对能阻止的攻击
我们要做的就是尽力~

==================================
小小姑娘
清早起床
提着裤子上茅房
茅房有人,没有办法
只好拉在裤子上..................
QQ:18163708;765835
MSN:yoursunboy@msn.com
Gtalk:yoursunboy@gmail.com
================================== --------------------编程问答-------------------- 这个地方不要绕进去。

设计程序的时候,先把脆弱的摆设去掉,测试核心的业务逻辑。例如输入用户信息,如果你保证用户名唯一,那么Redirect之后如果用户点后退,页面立刻会出现“用户名重复”的错误信息,并且按照这个异常处理流程继续运行。如果是提交订单明细,假如你在页面上自动产生行号信息(以便记录用户输入明细的次序),业务逻辑保证行号必须连续且唯一,用户错误的提交顺序也会循着逻辑异常处理的设计好的流程走。

你在业务上去考虑数据一致性问题,这是“第一”层要做到的防护,最少要做到的防护。不要因为这不是界面层,就以为是次要的。
--------------------编程问答-------------------- 这个地方不要绕进去,不要嘴上说做的越多越好,而行动中图省事只做界面层的那一点点东西。 --------------------编程问答-------------------- -_-!
呵呵

==================================
小小姑娘
清早起床
提着裤子上茅房
茅房有人,没有办法
只好拉在裤子上..................
QQ:18163708;765835
MSN:yoursunboy@msn.com
Gtalk:yoursunboy@gmail.com
================================== --------------------编程问答-------------------- 算了,我自己已经弄出来,呵呵,谢谢各位! --------------------编程问答-------------------- 真的行了么?很幼稚的说法,拿来测试下啊,堵住了一条路就真以为回不去了?有点像掩耳盗铃;
sp1234说的还是有点道理的,有时间就去多想想其它的 --------------------编程问答-------------------- 可以expire前面的页面 --------------------编程问答-------------------- <script>alert("易做图!!!")</script> --------------------编程问答-------------------- 该回复被版主删除 --------------------编程问答-------------------- sp1234 还是不要幼稚的解释了,人家客户需求你就要解决,况且有不是什么大量工作10行不到的代码的事情,有您那东一下西一下解释的时间人家都能解决10个这类的问题了
----------------------------
function NoBack(){
history.go(1)}

页面
<body onload="NoBack();">

数数总共几行代码吧,用mastepage的话工作量已经是无法在低的了
csdn的星星。哎。。。。。 --------------------编程问答-------------------- 有个ajax控件 可以帮你实现!当然你也可以自己写! --------------------编程问答-------------------- 我也觉得sp1234说了一堆的废话!
楼主可去查一下禁止页面缓存的知识。 --------------------编程问答-------------------- 顶21楼 --------------------编程问答-------------------- 唉。楼主在等两年看这篇帖子可能会有不同的感受。 --------------------编程问答-------------------- 参考 --------------------编程问答--------------------  //使当前页面立即过期,防止后退 刷新 缓存
Response.Expires = 0;
Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);
Response.AddHeader("pragma", "no-cache");
Response.CacheControl = "no-cache";

不知道这个可以不?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,