我有一个asp.net Web应用程序,其中sessionstate模式是“InProc”。对于Inproc,默认情况下会话到期时间为20分钟。我想在会话到期前一分钟显示会话到期倒计时弹出窗口。但我找不到一个属性,说明已经有多少个mimutes。如何知道这是否是第19分钟。 现在我正在做如下:
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
}
}
答案 0 :(得分:0)
你可以使用一些ajax来实现这一目标。 这是一个可能的解决方案:
<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>
然后你必须在WebMethod中开发你的倒计时代码:
<%@ 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";
}
}