FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 19380|回复: 14
打印 上一主题 下一主题

session失效后页面跳转问题

[复制链接]
跳转到指定楼层
楼主
发表于 2012-6-14 15:41:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当session失效时跳转到登录页,但是却在tab部分的在跳转,想要的效果是整个页面跳。




想要的效果是如下图:就如刚进入系统的登录页一样


求助!!!!!!

前后代码:
<extageManager ID="ageManager1" runat="server" AutoSizePanelID="RegionPanel1" />
    <ext:RegionPanel ID="RegionPanel1" runat="server" ShowBorder="false">
        <Regions>
            <ext:Region ID="Region1" Margins="0 0 0 0" Height="62px" ShowBorder="false" ShowHeader="false"
                Position="Top" Layout="Fit" runat="server">
                <Toolbars>
                    <ext:Toolbar ID="Toolbar1" Position="Bottom" runat="server">
                        <Items>
                            <ext:ToolbarFill ID="ToolbarFill1" runat="server">
                            </ext:ToolbarFill>
                            <ext:ToolbarText ID="ToolbarText4" Text="欢迎您 " runat="server">
                            </ext:ToolbarText>
                            <ext:ToolbarText ID="tbtUserName" Text=" " runat="server">
                            </ext:ToolbarText>
                            <ext:Button ID="btnSourceCode" Text="修改密码" EnablePostBack="true"
                                runat="server" Type="Button">
                            </ext:Button>
                            <ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
                            </ext:ToolbarSeparator>
                            <ext:Button ID="btnExit" ConfirmText="确认退出系统吗?" Text="安全退出" EnablePostBack="true"
                                runat="server" Type="Submit">
                            </ext:Button>
                        </Items>
                    </ext:Toolbar>
                </Toolbars>
                <Items>
                    <ext:ContentPanel ShowBorder="false" ShowHeader="false" BodyStyle="background-color:#1C3E7E;"
                        ID="ContentPanel3" runat="server">
                            <div style="height:5px;"></div>
                        <div style="float:left; color:White;">
                            <aspabel ID="Label3" runat="server" Text="系统" Font-Bold="true" Font-Size="18px" ></aspabel>
                        </div>
                    </ext:ContentPanel>
                </Items>
            </ext:Region>
            <ext:Region ID="reLeft" Split="true" EnableSplitTip="true" CollapseMode="Mini" Width="200px"
                Margins="0 0 0 0" ShowHeader="true" Title="菜单栏" EnableLargeHeader="false" Icon="Outline"
                EnableCollapse="true" Layout="Fit" Position="Left" runat="server">
                <Items>
                </Items>
            </ext:Region>
            <ext:Region ID="mainRegion" runat="server" Position="Center" Layout="fit" Margins="0 0 0 0"
                ShowHeader="false" Title="">
                <Items>
                    <ext:TabStrip ID="mainTabStrip" EnableTabCloseMenu="true" ShowBorder="false" runat="server">
                        <Tabs>
                            <ext:Tab ID="Tab1" Title="首页" Layout="Fit" Icon="House" runat="server">
                                <Items>
                                    <ext:ContentPanel ID="ContentPanel1" ShowBorder="false" BodyPadding="10px" ShowHeader="false" AutoScroll="true"
                                        CssClass="intro" runat="server">
                                        <img src="images/bg006.jpg" alt="" />
                                        <img src="images/bg001.jpg" alt="" style="float:right" />
                                    </ext:ContentPanel>
                                </Items>
                            </ext:Tab>
                        </Tabs>
                    </ext:TabStrip>
                </Items>
            </ext:Region>
        </Regions>
    </ext:RegionPanel>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2012-6-16 06:40:56 | 只看该作者
这个应该是后台事件,你贴前台代码干嘛呢?用js的话,直接window.top.locaiton.href='Login.apsx'就可以了呀!
板凳
 楼主| 发表于 2012-6-19 09:33:52 | 只看该作者
☆幻~精灵 发表于 2012-6-16 06:40
这个应该是后台事件,你贴前台代码干嘛呢?用js的话,直接window.top.locaiton.href='Login.apsx'就可以了 ...

每个页面的后台都是这样写的:
protected void Page_Load(object sender, EventArgs e)
    {
        UserInfo user = (UserInfo)Session["USER"];//获得登陆用户信息
        if (!IsPostBack)
        {
            if (user != null)
            {
               
            }
            else
            {
                Response.Redirect("~/Login.aspx");
                //FormsAuthentication.RedirectToLoginPage();//返回主页
            }
        }
    }
地板
发表于 2012-6-20 11:25:20 | 只看该作者
PageContext.RegisterStartupScript("window.top.locaiton.href='Login.apsx'");
5#
发表于 2012-6-20 13:26:51 | 只看该作者
yan 发表于 2012-6-19 09:33
每个页面的后台都是这样写的:
protected void Page_Load(object sender, EventArgs e)
    {

这样的操作完全可以放在继承自System.Web.UI.Page的父类中去重写Init方法实现。然后每个WebForm继承自该类,就自动进行了Session验证。

看了你的这个方法,这个方法,貌似不一定能完全跳出框架页。需要在这里,根据,每次页面的相对url进行判断。然后利用ClientScript注册前台js事件去执行。方法如下:window.top.location.href=''
6#
发表于 2012-6-20 13:29:23 | 只看该作者
分享下,我的Session失效判断(对于弹出窗体无效)。
string url = Request.RawUrl;
        int count = url.Split('/').Length;
        string toUrl = "";
        for (int i = 0; i < count - 3; i++)
        {
            toUrl += "../";
        }
        toUrl += "Login.aspx";
        ExtAspNet.Alert.ShowInParent("登陆信息失效!请重新登陆!", "友情提示", ExtAspNet.MessageBoxIcon.Information, "top.location.href='" + toUrl + "'");
7#
发表于 2012-6-20 14:42:20 | 只看该作者
我的是写到类里了

public class UserHelper
    {
        public static UserInfo OnlineUser
        {
            get
            {
                try
                {
                    if (HttpContext.Current.Session["UserID"] != null)
                    {
                        int UserID = Convert.ToInt32(HttpContext.Current.Session["UserID"]);
                        return UserInfo.Load(UserID);
                    }
                    else
                    {
                        System.Web.UI.Page page = (System.Web.UI.Page)HttpContext.Current.Handler;
                       
                        page.Response.Redirect("~/login.aspx");
                        return (UserInfo)null;
                       
                    }
                }
                catch {
                    System.Web.UI.Page page = (System.Web.UI.Page)HttpContext.Current.Handler;
                    page.Response.Redirect("~/login.aspx");
                    return (UserInfo)null;
                }
               
            }
        }
8#
发表于 2012-6-20 15:24:59 | 只看该作者
啃O 发表于 2012-6-20 14:42
我的是写到类里了

public class UserHelper

你这样的写法,多用户的时候,会不会被覆盖呢?static实例,可只有一个呢!第二个登陆用户,难道不会将第一个的登陆用户的登陆信息修改掉吗?
9#
发表于 2012-6-20 15:32:44 | 只看该作者
本帖最后由 啃O 于 2012-6-20 15:38 编辑

Session是服务器与本机的会话 应该不会,具体多用户还真没详细测试过 精灵的方法得每个页面都得用代码判断
10#
发表于 2012-6-20 15:36:08 | 只看该作者
其实也可以不设置成静态的 在使用时从新new一个就行了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2025-5-21 01:25 , Processed in 0.049410 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表