نمایش پیام تمام شدن زمان session در asp.net با jquery

در این مقاله برای نمایش پیام تمام شدن وقت session از یک پلاگین jquery استفاده شده است

نمایش پیام تمام شدن زمان session در   asp.net با jquery

در این مقاله به دو مورد پرداخته می شود:

1- نشان دادن پیام قبل از تمام شدن تایم session

2- گذاشتن انتخاب برای کاربر که با session جاری ادامه دهد یا از سایت خارج شود.

همانطور که میدانید زمان session  را باید  در webconfig تنظیم کرد:

<system.web>
<sessionState timeout="2"></sessionState>
</system.web>

درقسمت سورس صفحه Default کد زیر را وارد کنید:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Session Time Out Warning Message</title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>

    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script>

    <script src="Script/timeout-dialog.js" type="text/javascript"></script>

    <link href="css/timeout-dialog.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript" language="javascript">

        function Timer(time) {
            setTimeout(TimeOut, time);
        }

        function TimeOut() {
            $.timeoutDialog({
                timeout: 1,
                countdown: 60,
                keep_alive_url: window.location.pathname,
                logout_redirect_url: '/AutoSessionTimeOut/SessionTime.aspx',
                restart_on_yes: true
            });
        }

    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblMsg" runat="server" Text=""></asp:Label>
    </div>
    </form>
</body>
</html>

حال تابع timer را با استفاده از ScriptManager فراخوانی میکنیم:

و فایل Default.aspx.cs را به شکل زیر ویرایش کنید:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            int _displayTimeInMiliSec = (Session.Timeout - 1) * 60000;

            if (Session["ID"] == null)
            {
                Session["ID"] = "New Session";
                lblMsg.Text = Convert.ToString(Session["ID"]);
            }
            else
                lblMsg.Text = "Old Session";

            ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(),
                "message",
                "<script type=\"text/javascript\" language=\"javascript\">Timer('" + _displayTimeInMiliSec + "');</script>",
                false);
        }
    }

حال برنامه رو اجرا کنید

          

فایل های ضمیمه