上次下了个URL重定向dll.是在application里重定向的,感觉还蛮好用.
可是现在突然遇上个问题不好解决.如果执行下面的代码,页面就会刷新下,导致url又变回原来的了.参考:if (Session["UserID"] == null)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "start", "<script>alert('请您先登录');</script>");
                Session["RUrl"] = Request.RawUrl;
                return;
            }
不知道大家有没有办法解决。

解决方案 »

  1.   

    UrlRewite之后postback地址被还原的问题的解决方法 
    http://www.cnblogs.com/jzywh/archive/2007/12/20/urlrewriteaction.html
      

  2.   

    验证是否登录页面代码:void BasePage_Load(object sender, EventArgs e)
        {
            //Session["SimpleUserInfo"]是在前台登录界面登录成功时设置的
            simpleUserInfo = Session["SimpleUserInfo"] as SimpleUserInfo;
            //如果用户没有登录则调转到登录页面
            if (simpleUserInfo == null)
            {
                string target = Request.Url.ToString();
                if (string.IsNullOrEmpty(target))
                {
                    Response.Redirect("~/Login.aspx");
                }
                else
                {
                    Response.Redirect("~/Login.aspx?target=" + Server.UrlEncode(target));
                }
            }
        }
      

  3.   

    登录页面//如果成功登录
    if (UserBLL.Login(userName, password, out simpleUserInfo))
                {
                    Session["SimpleUserInfo"] = simpleUserInfo;
    //获取登录前的页面
                    string target = Request.QueryString["target"];
                    string url = string.Empty;
    //如果是直接打开登录页面
                    if (string.IsNullOrEmpty(target))
                    {
                        url = "index.aspx";
                    }
                    else
                    {
                        url = target;
                    }
                    Session.Remove("CheckCode");
                    JScript.AlertAndRedirect("登录成功!", url);
                }
                else
                {
                    JScript.Alert("登录失败!可能是用户名不存在或者密码不正确或者被禁用!");
                }