千家信息网

ASP.NET如何关闭页面服务端及对话层清空

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章给大家介绍ASP.NET如何关闭页面服务端及对话层清空,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。要清掉Session必须回到服务端,在客户端是不能改变服务端内容的。A
千家信息网最后更新 2025年01月19日ASP.NET如何关闭页面服务端及对话层清空

这篇文章给大家介绍ASP.NET如何关闭页面服务端及对话层清空,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

要清掉Session必须回到服务端,在客户端是不能改变服务端内容的。ASP.NET 关闭页面服务端对话层的清空我们可以变通下--使用ajax。首先我们要判断用户什么时候关闭了页面,这样才能执行下一步动作。不过HTML DOM没要页面关闭的事件,只有onunload和onbeforeunload是与ASP.NET 关闭页面有关的,ASP.NET 关闭页面或刷新后的事件,onbeforeunload是ASP.NET 关闭页面或刷新前的事件,所以我们要用的是onbeforeunload。要判断下用户是关闭页面还是在刷新页面。代码如下:

_window.onbeforeunload = function()   {      //这是网上找的,具体没验证过
  • var n = window.event.screenX - window.screenLeft;

  • var b = n > document.documentElement.scrollWidth-20;

  • if(b && window.event.clientY < 0 || window.event.altKey)

  • {

  • ClearSession();

  • }

  • }

  • ClearSession()为ajax调用请求服务端,服务端接收到请求后执行清空Session的操作。Ajax的东西不多说了,下面为代码。

    ========================Default.aspx 开始===========================================   <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>               无标题页                      
    ========================Default.aspx 结束=========================================== ========================Default.aspx.cs 开始=========================================== using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Request.QueryString["___command"])) { string cmd = Request.QueryString["___command"]; if (cmd == "ClearSession") Session.Remove("name");//清空Session } if (Session["name"] != null) this.Label1.Text = Session["name"].ToString(); } protected void Button1_Click(object sender, EventArgs e) { Session["name"] = "vvvvvvvvvvvvv"; if (Session["name"] != null) this.Label1.Text = Session["name"].ToString(); } } ========================Default.aspx.cs 结束=========================================== ========================script.js 开始=========================================== function GetXmlHttpObject() { //创建XMLHttpRequest对象来发送和接收HTTP请求与响应 xmlHttpObj = null; try { // FireFox Opera 8.0+ Safari xmlHttpObj = new XMLHttpRequest(); if(xmlHttpObj.overrideMimeType) { xmlHttpObj.overrideMimeType('text/xml'); } } catch(e) { // IE try { xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttpObj; } function StateChanged() { if(___xmlHttp.readyState == 4) { if(___xmlHttp.status == 200) { } else { } } } var ___xmlHttp=null; function ClearSession() { if(___xmlHttp==null) ___xmlHttp = GetXmlHttpObject(); if(___xmlHttp == null) return false; var url = "?___command=ClearSession&___clientRandom=" + Math.random(); ___xmlHttp.open("GET", url, true); ___xmlHttp.onreadystatechange = StateChanged; ___xmlHttp.send(null); } _window.onbeforeunload = function() { var n = window.event.screenX - window.screenLeft; var b = n > document.documentElement.scrollWidth-20; if(b && window.event.clientY < 0 || window.event.altKey) { ClearSession(); } }


关于ASP.NET如何关闭页面服务端及对话层清空就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

页面 服务 对话 事件 内容 代码 更多 用户 帮助 不错 东西 兴趣 动作 只有 客户 客户端 对象 小伙 小伙伴 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 csgo更新无法进入内容服务器 wyse++管理服务器 php一次插入数据库 六安系统软件开发定制 软件开发流程知识点总结 如何建立自己的数据库 如何查看奇迹服务器地址 浪潮服务器改造 我的世界服务器的宝石粘合剂图片 网络安全服务验收报告 南明公安网络安全大队 泰拉瑞亚各种服务器 全国最好的网络安全培训机构 什么是行业软件开发 群控服务器系统 合肥app软件开发的费用 从事数据库工程师需要考哪些证书 新华区技术软件开发服务价钱 华为数据库分页 网络安全风险评估能力检查 数据库系统概论视频教程 不良信息上传金融数据库 数据库关系表达式的执行效率 明日之后沙石古堡服务器还有人吗 黑沫科技互联网广告销售 手机同名数据库在哪里找 云帮手能在服务器上安装吗 互联网新闻科技 数据库技术与应用第四章答案 涉密资质软件开发乙级申请条件
0