2013-11-01 25 views
0

我打算通过apache在服务器上安装bugzilla/trac,mediawiki和一些其他Web服务。我想知道是否有方法可以跟踪哪些用户(来自不同客户端机器的特定Web服务的用户名)被登录到服务器。如何获取当前登录到任何Web服务的服务器的用户列表?

我想创建一个数据库,并做了一些逻辑。在此之前,如果有更简单的方法,那么我想为此付出努力。

这是我第一次与服务器的东西和Apache。

在此先感谢

回答

0

请注意,你不能得到的名单“的所有用户登录到Web应用程序”。您可以获得“所有最近通过身份验证的用户”列表,或者可能“具有有效身份验证令牌的所有用户”的列表,但由于网络连接的无状态特性,“当前登录”的概念非常棘手(如果关闭我的浏览器窗口,我是否“注销”?如果我在新窗口中打开连接 - 我是否重新登录,或者是否一直登录?)。

话虽如此,您所命名的所有Web应用程序都有自己的处理用户身份验证的机制。除非您已经配置了某种单点登录(SSO)解决方案,否则您将不得不分别查询每个应用程序以获取有关当前经过身份验证的用户的信息。如果您正在使用多种Web应用程序,设置单点登录可能非常方便,但根据所讨论的Web应用程序的配置可能会非常棘手。

在“客户端机器”方面要小心思考,因为那是另一回事,这是一个棘手的概念。即使有多个客户端,一群使用住宅或酒店互联网连接的人也可能都来自相同的IP地址。几个人可能共享一台计算机,或者有人可能会向应用程序打开多个浏览器会话。

+0

谢谢,即使他们没有注销,我也不介意。如果他们连接到服务器,那么有没有办法让我可以得到使用任何服务的机器的IP地址? –

+0

当客户端向您的Web应用程序发出请求时,您可以获取客户端的IP地址(例如,Apache在REMOTE_ADDR变量中提供了该地址) - 或者至少显示在您的Web上的IP地址应用。如果涉及到代理或NAT网关,这可能是也可能不是客户端的实际地址,并且多个客户端可能来自相同的IP地址。 – larsks

相关问题