C# 在浏览器关闭中终止会话值
我在C#Net工作。我想在浏览器关闭时终止会话值。(即)在我的应用程序中,我希望显示在线访客数。如果用户单击“注销”按钮,这意味着它可以正常工作。与其关闭浏览器,会话值不会被清除 如果浏览器关闭完成,则会话值应被终止 我的Global.ascx代码C# 在浏览器关闭中终止会话值,c#,javascript,C#,Javascript,我在C#Net工作。我想在浏览器关闭时终止会话值。(即)在我的应用程序中,我希望显示在线访客数。如果用户单击“注销”按钮,这意味着它可以正常工作。与其关闭浏览器,会话值不会被清除 如果浏览器关闭完成,则会话值应被终止 我的Global.ascx代码 void Application_Start(object sender, EventArgs e) { // Code that runs on application startup Application["Onli
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
Application["OnlineUsers"] = 0;
}
void Application_End(object sender, EventArgs e)
{
// Code that runs on application shutdown
}
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
}
void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
Application.UnLock();
}
My Home.aspx代码
Visitors online: <%= Application["OnlineUsers"].ToString() %>
在线访客:
如果我在IE中运行我的应用程序,联机计数将为1。如果我在Firefox中运行,在线计数应该增加到2。如果我关闭Firefox浏览器,IE中的计数应更改为1
这是我的要求……您可以触发javascript,如下所示:
<SCRIPT language="JavaScript">
<!--
function loadOut()
{
window.location="http://www.yoursite.com/loadout.php?sid=235346317";
}
//-->
</SCRIPT>
<body onBeforeUnload="loadOut()">
您的javascript可以执行AJAX调用,或者其他任何操作。
我认为,当用户离开您的站点时,这也会起作用
这就是您搜索的内容吗?您可以触发javascript,如下所示:
<SCRIPT language="JavaScript">
<!--
function loadOut()
{
window.location="http://www.yoursite.com/loadout.php?sid=235346317";
}
//-->
</SCRIPT>
<body onBeforeUnload="loadOut()">
您的javascript可以执行AJAX调用,或者其他任何操作。
我认为,当用户离开您的站点时,这也会起作用
这就是你要搜索的吗?这个怎么样:
<body onunload="doUnload()">
然后在php中,只需取消设置会话数据,或销毁会话
<?php
if ($_POST['action'] == 'unset')
{
// Unset or Destroy the Session
session_destroy();
}
?>
这个怎么样:
<body onunload="doUnload()">
然后在php中,只需取消设置会话数据,或销毁会话
<?php
if ($_POST['action'] == 'unset')
{
// Unset or Destroy the Session
session_destroy();
}
?>
Http协议是无连接协议,因此除非您计划使用WebSocket,否则只有两种方法可以终止用户会话,即用户直接请求(即按下注销链接)或会话超时
您不应依赖浏览器终止会话。用户可能忘记关闭浏览器,或者禁用了javascript。相反,为用户提供关闭会话的方法,并将会话超时设置为根据用户活动调整的合理值。Http协议是无连接协议,因此除非您计划使用WebSocket,否则只有两种方法可以通过用户的直接请求(即按下注销链接)终止用户会话,或会话超时
if (!Session.IsNewSession && Request.UrlReferrer == null)
{
}
您不应依赖浏览器终止会话。用户可能忘记关闭浏览器,或者禁用了javascript。相反,为用户提供关闭会话的方法,并将会话超时设置为根据用户活动调整的合理值
if (!Session.IsNewSession && Request.UrlReferrer == null)
{
}
若我们键入或粘贴url,此代码将重定向到登录页面
如果我们键入或粘贴url,此代码将重定向到登录页我在IE的.net应用程序中执行了此操作,当用户单击浏览器右上角的X按钮时,我想强制用户注销。希望有帮助 在母版页中:
<script type="text/javascript">
window.onbeforeunload = function (e) {
//alert("Killing the session on the server!!");
if ((window.event.clientX < 0) || (window.event.clientY < 0)) {
document.getElementById('<%= FORCE_LOGOUT_BTN.ClientID %>').click();
}
}
</script>
<asp:Button ID="FORCE_LOGOUT_BTN" runat="server" CssClass="noShow"OnClick="ForceLogOut" Width="10px" />
我在IE的.net应用程序中这样做了,当用户单击浏览器右上角的X按钮时,我想强制用户注销。希望有帮助 在母版页中:
<script type="text/javascript">
window.onbeforeunload = function (e) {
//alert("Killing the session on the server!!");
if ((window.event.clientX < 0) || (window.event.clientY < 0)) {
document.getElementById('<%= FORCE_LOGOUT_BTN.ClientID %>').click();
}
}
</script>
<asp:Button ID="FORCE_LOGOUT_BTN" runat="server" CssClass="noShow"OnClick="ForceLogOut" Width="10px" />
注意,在某些情况下,其他浏览器窗口可能会打开以共享会话。在这种情况下,您也可以终止另一个windows会话。请小心,在某些情况下,其他浏览器窗口可能会打开以共享会话。在这种情况下,您也可以终止另一个windows会话。