让全站的页面不能前进和后退

  由于采用Ajax.Net技术,要求客户不能用浏览器的后退来导航,因为这样会产生不正确的页面.因为有时,结果是Ajax查询返回的,不会保存住.

JQuery是一个好东西,可以很方便的给每个 <A> 加上事件,来重写它的默认的跳转,我们把它改成单击时,调用Location.replace来完成页面切换.

代码如下:

ContractedBlock.gif ExpandedBlockStart.gif Code
$(document).ready(function() {
    $(
"a").each(function() {
        
var href = $(this).attr("href");

        
if (!href.match(/^javascript\:__doPostBack\(.+?\)$/i)) {
            $(
this).click(function() {
                location.replace($(
this).attr("href"));
                
//alert('ok');
                return false;
            })
        }
//        else {
//
            $(this).click(function() {
//
                alert('你点击了LinkButton');
//
                //return false;
//
            })
//
        }

    })

});

 

  现在好了,可是我在我项目中,发现一点问题,由于登陆页面采用Form认证,这样登陆后会调用

FormsAuthentication.RedirectFromLoginPage(userName,  false );

来返回到用户最初请求的页面,但这会造成浏览器切换,会使后退按钮可用.看来我们要登陆成功后,采用注册脚本的形式,来完成这个切换:

ContractedBlock.gif ExpandedBlockStart.gif Code
        protected void btnLogon_Click(object sender, EventArgs e)
        {
            
if (Page.IsValid)
            {
                
string userName = this.tbUserName.Text.Trim();
                
string userPwd = this.tbPassword.Text.Trim();
                
if (Membership.ValidateUser(userName, Utility.HashedString(userPwd)))
                {
                    FormsAuthentication.SetAuthCookie(userName, 
false);
                    
//FormsAuthentication.RedirectFromLoginPage(userName, false);
                    ScriptManager.RegisterStartupScript(this.tbUserName, this.GetType(), "success"string.Format("location.replace('{0}');", FormsAuthentication.GetRedirectUrl(userName,false)), true);
                }
                
else
                {
                    ScriptManager.RegisterStartupScript(
this.tbUserName, this.GetType(), "loginfailed""alert('用户名密码错误');"true);
                }
            }
            
else
            {
                ScriptManager.RegisterStartupScript(
this.tbUserName, this.GetType(), "loginfailed""alert('验证码不正确');"true);
            }
        }

 

现在好了,从登陆开始,到退出,浏览器都不会产生后退哟.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值