如何实现用户登录后就跳转出原来的页面 
我用Request.UrlReferrer.AbsolutePath的话,
如果是点击或者其他的都可以但当是用JS window.location.href='XXX' 方法时为null就不行了。
查看了帮助得到
Request.UrlReferrer 不支持 JS的locatin.href跳转记录晕死大家看看要怎么办谢谢

解决方案 »

  1.   

    是啊。。本来不支持啊。。referrer是取得上页的记录啊。。你直接用redirect跳算了。。
      

  2.   

    在登录页面中加个参数returnURL,跳转时提取这个参数值
      

  3.   

    不过如果你用的是vs2005提供的login控件,应该有这个相关跳转属性。如果这样的话,只要设置属性就可以了。
      

  4.   

    RE:你直接用redirect跳算了。。
    -------------------------------------
    问题是现在我是在JavaScript中跳转的啊
      

  5.   

    only_endure说的有道理!!!
    帮你顶!!
      

  6.   

    自己写个QueryString如returnUrl=urlencode编码的url
      

  7.   

    用js里面的history对象吧,应该是可以的
      

  8.   

    这样返回的是未登陆的缓存页面,跟浏览器的后退按钮是一样的效果。最好把你js部分的代码贴出来看看或者你把用户验证cs代码放在登陆页面,判断后redirect
      

  9.   

    登录成功后加有句 response.redirect("XXXX.XXX");
    就可以跳到相应页了.
      

  10.   

    其实有很多方法:
    你的那种方法也可以
    引用楼主
    但当是用JS window.location.href='XXX' 方法时为null 就不行了。 
    查看了帮助得到 
    Request.UrlReferrer 不支持 JS的locatin.href跳转记录 

    window.location.href=<%=Request.UrlReferrer%>
      

  11.   

    RE:window.location.href=<%=Request.UrlReferrer%>
    ------------------------
    晕不知道你这样子有什么作用现在是在我的Login.aspx.cs中取不到用window.location.href=''这样转过来的网页
      

  12.   


            ArrayList list = new YYUser().GetList("username = '" + UserName + "' AND password = '" + Password + "'", "");
            if (list.Count > 0)
            {
                 //登录成功,跳转到跳转到当前页面的原来页面
            }开始我用Request.UrlReferrer但发现
    当是用JS跳过来的话就Request.UrlReferrer = null所以问这个情况要怎么办
      

  13.   

    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            txtUserName.Focus();
            if (!IsPostBack)
            {
                if (Request.UrlReferrer != null)
                    ViewState["ReferrerUrl"] = Request.UrlReferrer.ToString();
            }
        }    protected void btnLogin_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    //验证登陆代码                if (登陆成功)
                    {
                        //其他工作
                        //下面跳转
                        if (ViewState["ReferrerUrl"] != null)
                            Response.Redirect(ViewState["ReferrerUrl"].ToString());
                        else
                            Response.Redirect("default.aspx");
                    }
                }
                catch (Exception)
                {            }
            }
        }
    }
      

  14.   

    RE:history.go(-1);
    -----------------------
    这样不行。因为在登录的地方用户不可能说一次就登录成功,
    还有如果页面中有IFrame或其他的元素的话就不会精确的实现RE:amandag 
    --------------
    我现在就是用这种花方法,但问题是,用window.location.href='XXXX'这样过来的
    他的值为Request.UrlReferrer.ToString();=null
      

  15.   

      登陆前,用Request.Url记录下当前URL,把它作为参数传递到登陆页面,登陆页面Request下来这个参数,登录成功后,在跳转到这个参数指出的URL。
      

  16.   

    RE:不明白楼主想表达什么?
       您的history.go(-1); 
    -----------------------------------
    这个肯定是不行的

    你从A -> Login.aspx
    如果这时login.aspx里面是有iframe的
    而这时你又点击iframe
    那么你用history.go(-1)话是从iframe返回login.aspx
    而不是从login.aspx返回A
    这时的话,如果页面有多个iframe你的history.go(-1)
    这种方式就会有很大的错误还有如果login.aspx执行点了后台按钮那你的history.go(-n) 这个N也不好打握
    如果用户在iframe里面点了按钮的话那就更难打握了不信,你可以用Iframe后点浏览器的back看会不会有效果