Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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# 手动检查用户是否登录asp.net的有效方法_C#_Asp.net_Global Asax - Fatal编程技术网

C# 手动检查用户是否登录asp.net的有效方法

C# 手动检查用户是否登录asp.net的有效方法,c#,asp.net,global-asax,C#,Asp.net,Global Asax,我正在开发一个asp.net 3.5应用程序,其中未实现asp.net成员资格。如果用户登录应用程序,我将在用户表中维护一个标志,如果用户登录,该标志将设置为true;如果用户手动注销或用户空闲超过5分钟,该标志将设置为false。如果此标志的值为true,则其他用户无法使用相同的用户名登录到应用程序 我正在使用Global.asax文件的Session\u Endevent将用户空闲超过5分钟时的标志值设置为false,但问题是,如果用户空闲超过5分钟,有时标志值不会更新为false,这表明S

我正在开发一个asp.net 3.5应用程序,其中未实现asp.net成员资格。如果用户登录应用程序,我将在用户表中维护一个标志,如果用户登录,该标志将设置为true;如果用户手动注销或用户空闲超过5分钟,该标志将设置为false。如果此标志的值为true,则其他用户无法使用相同的用户名登录到应用程序

我正在使用Global.asax文件的
Session\u End
event将用户空闲超过5分钟时的标志值设置为false,但问题是,如果用户空闲超过5分钟,有时标志值不会更新为false,这表明Session\u End不是很可靠


有人请为我推荐一个替代上述场景的
会话结束

使用时间跨度机制。刷新服务器上每个用户操作的时间跨度。当timespan超过5分钟时,您将知道他已离开。

我建议使用会话超时强制结束会话。更多信息可在此处找到-


您设置了超时值吗?

会话结束
如果在
InProc
模式下运行,肯定会在会话结束时触发-它不会随意地、间歇地发生。这是会话机制为您可靠地做的事情。我认为问题是关于不可靠的会话机制,因此提出了一个替代方案…在我的例子中,超时设置为5分钟,这意味着如果用户使用网站10分钟,空闲5分钟,他的会话将过期,这是否正确?…此外,当用户登录时,我将userid存储在会话变量中,有时该值变为null,并且在会话结束时不可用这是我面临的主要问题。我不能在这里使用timespan,因为用户可以在注销前花费5分钟以上。是的,超时设置为5分钟,据我所知,这5分钟是空闲时间,即,如果用户连续使用网站15分钟,空闲5分钟,那么只有他的会话才会过期,对吗?是的,你是对的,会话只有在空闲5分钟后才会过期。