2013-11-01 36 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

相關問題