Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在浏览器关闭中终止会话值_C#_Javascript - Fatal编程技术网

C# 在浏览器关闭中终止会话值

C# 在浏览器关闭中终止会话值,c#,javascript,C#,Javascript,我在C#Net工作。我想在浏览器关闭时终止会话值。(即)在我的应用程序中,我希望显示在线访客数。如果用户单击“注销”按钮,这意味着它可以正常工作。与其关闭浏览器,会话值不会被清除 如果浏览器关闭完成,则会话值应被终止 我的Global.ascx代码 void Application_Start(object sender, EventArgs e) { // Code that runs on application startup Application["Onli

我在C#Net工作。我想在浏览器关闭时终止会话值。(即)在我的应用程序中,我希望显示在线访客数。如果用户单击“注销”按钮,这意味着它可以正常工作。与其关闭浏览器,会话值不会被清除

如果浏览器关闭完成,则会话值应被终止

我的Global.ascx代码

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会话。