|
1
2
会话\u End不保证触发-例如,如果您不使用InProc会话,那么它根本不会触发。如果您的应用程序再次被回收或死亡,它将不会启动。
不幸的是 Membership class
这将“获取当前访问应用程序的用户数”-很好,但唯一能够获取用户数的方法是:
不幸的是,所有这些都没有一个属性只能根据计数返回“活动用户”。 查看MembershipUser的成员,没有“IsOnline”属性—只有LastLogonDate和LastActivityDate—由于web的断开连接特性,这可能是您将要得到的最好结果。 |
|
|
2
0
我会想象你让他们通过点击按钮或链接或类似的方式注销。为什么不把代码放在同一个事件/块中呢。靠近放置FormsAuthentication.SignOut()调用的位置。 |
|
|
3
0
Global.asax中有一个Session_End处理程序,您可以在其中放置会话到期时要执行的文件。 我不确定这是你想要的。会话和身份验证是两件不同的事情。如果您的身份验证技术向用户(在cookie中)提供FormsAuthenticationTicket,并且该ticket已过期,那么身份验证的过期将通过该ticket进行控制。它将不会在服务器上进行主动管理。将提供用户发出的每个请求,然后服务器确定用户是否仍然经过身份验证。
|
|
|
4
0
如果您使用的是SQL提供程序,则aspnet_Users表有一个“LastActivityDate”列。如果将其与表单身份验证的超时值进行比较,您可以得到一个用户列表,其中肯定没有登录。如果他们使用“注销”链接手动注销,您的计数将很低。 |