Frage

Ich habe eine ASP.NET -Webanwendung, in der der Sitzungsmodus "InProc" ist. Bei InProc beträgt der Ablauf der Sitzung standardmäßig 20 Minuten. Ich möchte eine Minute lang ein Countdown -Countdown -Countdown -Popup der Sitzung anzeigen, bevor die Sitzung abgelaufen ist. Aber ich kann keine Immobilie finden, die besagt, wie viele Mimutes gegangen sind. Wie man weiß, ob es die 19. Minute ist. Im Moment mache ich wie unten:

if (Context.Session != null)// Check whether the session is null
             { 
              if (Session.IsNewSession)// If the session is null, check whether the session is new
               {
               Response.Redirect("../SessionTimeout.aspx");//Redirect to time out page
               }
             }
War es hilfreich?

Lösung

Sie können etwas AJAX verwenden, um dies zu erreichen. Hier ist eine mögliche Lösung:

<script type="text/javascript">

    function checkAuthenticated() {
        {
            $.ajax({
                type: "POST",
                url: "CheckAutheticated.asmx/checkAuthenticated",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: checkAuthenticatedOk,
                error: checkAuthenticatedError
            });
        }
    }
    function checkAuthenticatedOk() { }
    function checkAuthenticatedError() {
        $("#sessionExpiredCover").show();
    }
    </script>
    <style type="text/css">
    #sessionExpiredCover {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 100000;
    display: none;
    background-color: #fff;
    /*opacity: .7;
    filter:progid:DXImageTransform.Microsoft.BasicImage(opacity=.7);*/
    }
    </style>

<div id="sessionExpiredCover">
    <div style="background-color:#fff; margin:100px; height:200px; width:400px;"><h1>Session expired</h1>
        <br />
        <asp:HyperLink NavigateUrl="~/Login.aspx" runat="server" Text="Please log in again" />
    </div>
</div>

Dann müssen Sie Ihren Countdown -Code im WebMethod entwickeln:

<%@ WebService Language="C#" Class="CheckAutheticated" %>

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment     the following line. 
[System.Web.Script.Services.ScriptService]
public class CheckAutheticated  : System.Web.Services.WebService {

[WebMethod]
public string checkAuthenticated()
{
   //your countDownCode 
   return "authenticated";
}

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top