首页 > 代码库 > 页面内嵌iframe 防止session过期

页面内嵌iframe 防止session过期

If you are trying to stop the session from timeing out all the time you can do this rather than increasing the session timeout.

KeepAlive.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="KeepAlive.aspx.cs" Inherits="Pages.KeepAlive" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><%@ OutputCache Location="None" VaryByParam="None" %><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>    KEEP ALIVE    </div>    </form></body></html>

Keep Alive.aspx.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace Pages{    /// <summary>    /// Page to keep the session alive    /// </summary>    public partial class KeepAlive : System.Web.UI.Page    {        //- EVENTS ------------------------------------------------------------------------------------------------------------------        #region Events        /// <summary>        /// Page Load        /// </summary>        /// <param name="sender">object</param>        /// <param name="e">args</param>        protected void Page_Load(object sender, EventArgs e)        {            try            {                //Add refresh header to refresh the page 60 seconds before session timeout                Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) - 60));            }            catch (Exception)            {                throw;            }        }        #endregion Events        //---------------------------------------------------------------------------------------------------------------------------    }}

Then in your master page create an iFrame that refreshes to keep the session alive

<iframe id="Defib" src="KeepAlive.aspx" frameborder="0" width="0" height="0" runat="server"></iframe>

页面内嵌iframe 防止session过期