【30大洋求解】急:如何在Gloable.asax中用C#增加类似于Session_OnEnd一样的事件。

TengGaoqing 2009-11-14 11:22:41
我想在Golable.asax中的使用Session_OnEnd 事件,但是没有找到有这个事件,请各位大侠们指教,不胜感激!!!!!
...全文
195 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
TengGaoqing 2009-11-14
  • 打赏
  • 举报
回复
有啥资料没有?
  • 打赏
  • 举报
回复
browser端是否是将browser关闭就会有session_end事件触发?

肯定不会啊...除非你做了ajax的操作...

比如说判断一下onbeforeunload事件....你先理解一下服务段和客户端的概念....也就是browser都能做哪些事这个要想清楚了...呵呵
TengGaoqing 2009-11-14
  • 打赏
  • 举报
回复
好,那再问一个问题,解决了就结了。
请问:(小猪妹马甲之八卦兔子)
browser端是否是将browser关闭就会有session_end事件触发?
阿彪兄 2009-11-14
  • 打赏
  • 举报
回复
退出的时候
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tenggaoqing 的回复:]
明白了。
还有一个问题,是不是每一个用户登录的时候都会触发Session_Start事件?
同样当一个用户退出的时候也会触发Session_End事件?

如果是,那么如何取得该用户的信息?

我想在Global.asax.cs里面记录下所有用户的状态信息,不知道这种想法可行否?
[/Quote]

可行...这个在10年前的asp3时代就这么用了.....不过你不该在start事件中,而是登陆处理做...

在退出的时候session还没丢,从里面获值就是了...

还有你放在数据库里储存,还是application里,还是哪储存他们的信息,这个你要想好了....
TengGaoqing 2009-11-14
  • 打赏
  • 举报
回复
明白了。
还有一个问题,是不是每一个用户登录的时候都会触发Session_Start事件?
同样当一个用户退出的时候也会触发Session_End事件?

如果是,那么如何取得该用户的信息?

我想在Global.asax.cs里面记录下所有用户的状态信息,不知道这种想法可行否?
  • 打赏
  • 举报
回复
你明白了么??....
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tenggaoqing 的回复:]
那我再问一下,Session_End事件都会在什么条件是触发?
如果Session超时了,或者是将IE关闭了,或者是直接关机了,或者是掉电了,都可以触发吗?

如果Browser端不管做什么事情,只要是Session超时,或者关闭Browser,Server端只要正常运行就可以触发该事件吗?
[/Quote]

估计你对服务端和客户端不理解, 你的机器出事了,我服务器上怎么能知道呢...

你的ie关闭了是客户的机器,我的服务器现在可探查不到,服务器怎么能知道失效了呢?

答案....
两种情况,一种是你好长时间不访问了(默认20分钟),另外就是你主动给服务器发送了个请求session.abondon()了....
TengGaoqing 2009-11-14
  • 打赏
  • 举报
回复
那我再问一下,Session_End事件都会在什么条件是触发?
如果Session超时了,或者是将IE关闭了,或者是直接关机了,或者是掉电了,都可以触发吗?

如果Browser端不管做什么事情,只要是Session超时,或者关闭Browser,Server端只要正常运行就可以触发该事件吗?
  • 打赏
  • 举报
回复
global.asax就是一个特殊的httpmodule...
diandian82 2009-11-14
  • 打赏
  • 举报
回复
添加

protected void Session_End(Object sender, EventArgs e){ ... }
小_虎 2009-11-14
  • 打赏
  • 举报
回复
<%@ Application Codebehind="Global.asax.cs" Inherits="Global.Global" %>
知留这一句。

然后在App_Code中,添加后台。Global.asax.cs

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;

/// <summary>
///Global 的摘要说明
/// </summary>


namespace Global
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(Object sender, EventArgs e)
{

}

protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock ();
uint countnum=0;
countnum=(uint)Application["counter"];
countnum=countnum+1;
object obj=countnum;
Application["counter"]=obj;


//将数据记录写入文件
string file_path=Server.MapPath ("counter.txt");
StreamWriter fs=new StreamWriter(file_path,false);
fs.WriteLine (countnum);
fs.Close ();

Application.UnLock ();
}

protected void Application_BeginRequest(Object sender, EventArgs e)
{

}

protected void Application_EndRequest(Object sender, EventArgs e)
{

}

protected void Session_End(Object sender, EventArgs e)
{

}

protected void Application_End(Object sender, EventArgs e)
{
uint cnt=0;
cnt=(uint)Application["counter"];
string file_path=Server.MapPath ("counter.txt");
StreamWriter fs=new StreamWriter(file_path,false);
fs.WriteLine(cnt);
fs.Close ();
}
}
}
小_虎 2009-11-14
  • 打赏
  • 举报
回复
自己写就是了
  • 打赏
  • 举报
回复
ajax...随时监控,可以判断到1分钟以内....具体的可查询类似于开心网这样的网站...不过下线的时间也就这样了....我下午不在线
TengGaoqing 2009-11-14
  • 打赏
  • 举报
回复
其实我最原始的需求也是比较简单的,就是在longin的时候,将用户的状态记录下来,等用户离线的时候,也将其记录下来。

但是在哪里可以知道用户离线了,是一个问题,在网上看,发现了Session.end事件,于是就有了这个问题,呵呵。

不知道我的根本问题怎么解决啊?

一会儿把这个问题的分数给增加哈~~~~~~

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧