FineUI 官方论坛

标题: 关于session登录超时后跳转到登录页面问题,求帮助 [打印本页]

作者: 稀里糊涂丶娃    时间: 2015-5-17 21:35
标题: 关于session登录超时后跳转到登录页面问题,求帮助
现在session超时我是这样写的
1:我定义了一个类,代码如下
public class BasePage : System.Web.UI.Page//这个很重要
    {
        public BasePage()
        {
            //  
            // TODO: 在此处添加构造函数逻辑  
            //  
            this.Load += new EventHandler(BasePage_Load);
        }

        void BasePage_Load(object sender, EventArgs e)
        {
            if (Session["username"] == null || Session["userid"]==null)
            {
                Response.Write("<script language='javascript'>top.location.href='../login.aspx?cs=" + Server.UrlEncode("1") + "'</script>");
                Response.End();
                return;
                //Response.Redirect("~/login.aspx");
            }
        }  
    }


2:每个页面我都继承了这个类,代码如下
namespace CESHI
{
    public partial class CESHI:BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    }
}


现在问题是这样的,这样每个页面在左侧点击树菜单打开的时候,如果session过期了能跳转到登录界面,问题是这个页面打开了,等session过期了,点击这个页面上的按钮用于弹出一个窗体的时候就没反应了,不会跳转到登录页面了,有什么办法解决,或是有什么好方法能在session过期后跳转到登录界面

作者: 棕榈    时间: 2015-5-18 09:47
页面第一次请求的时候可以,但等页面加载完,所有的请求都是AJAX了,你往数据流中写入那个脚本,AJAX是不支持的,试试这个 PageContext.Redirect("~/login.aspx");
作者: 棕榈    时间: 2015-5-18 10:00
你也可以对IsPostBack进行判断,回发时写成这样也行 top.location.href='../login.aspx?cs=" + Server.UrlEncode("1") + "';“ ,回发时不能有 <script> 标签。
作者: 稀里糊涂丶娃    时间: 2015-5-18 15:06
棕榈 发表于 2015-5-18 09:47
页面第一次请求的时候可以,但等页面加载完,所有的请求都是AJAX了,你往数据流中写入那个脚本,AJAX是不支 ...

再请教下,用了这个 PageContext.Redirect("~/login.aspx"); 怎么跳出框架,这个只能在当前页面上跳转到登录页面,不是浏览器跳转到登陆界面,求指教
作者: 棕榈    时间: 2015-5-18 16:42
后面加个参数,PageContext.Redirect("~/login.aspx", "_top");
作者: 刘军    时间: 2015-5-20 10:19
1:实测登陆过期后,点击按钮,还是会跳转到登录页面,不知道你的问题在哪里
2:可以考虑过期后,在Global.asax用cookie对session再初始化




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4