2011-07-14 34 views
0

兩個段落在此之後在情況下,我在想這個問題錯誤的背景信息。實際的問題是在之後。如何獲得Pubcookie用戶名,而無需登錄

我創建了一個使用Pubcookie組織的應用程序。在過去,這非常方便,因爲我不必爲了獲取用戶名而實現任何會話認證;在PHP中,只要服務器配置爲需要有效的用戶,我需要做的就是獲得$ _SERVER ['REMOTE_USER']。

在過去的這些應用都需要登錄才能看到任何內容; .htaccess中的Apache配置會導致所有未經身份驗證的用戶重定向到登錄服務器以獲取憑據。現在我正在考慮一個可選的登錄系統,就像在互聯網上的其他地方使用一樣。我希望內容始終可見,但允許應用程序請求有效的用戶名。

這裏的問題:如果用戶沒有通過驗證,我強制認證,pubcookie他們重定向到登錄服務器來獲取認證。如果用戶通過身份驗證,並且我正在強制進行身份驗證,則可以在$ _SERVER ['REMOTE_USER']中獲取身份驗證信息。但是,如果用戶已通過身份驗證,但我不需要身份驗證,則無法獲取身份驗證信息。爲了要求這些信息,我必須要求它鎖定匿名用戶。

如何獲得Pubcookie認證的用戶名(如果存在),而不需要需要它存在?問另一種方式,有沒有辦法獲得有時可能返回「不,用戶名」的用戶名?我研究過PubcookieOnDemand,看起來我可以設置一個登錄腳本,該登錄腳本位於.htaccess身份驗證要求的後面,可以在登錄後設置ondemand cookie。但是,這並不理想,因爲無論用戶是否已經通過身份驗證,它都需要用戶轉到登錄頁面。另外,如果身份驗證過期,則無法刪除隨需cookie,因爲直到身份驗證之後腳本才能獲得控制權。

我唯一能找到的解決方案是有一個登錄鏈接,用於存儲pubcookie身份驗證並將其交給應用程序管理的會話,但我感覺很懶,不想解決現在安全地跟蹤用戶會話的問題。如果你有這方面的一些好的信息,儘管如此,隨時給我一個評論中的鏈接。

+1

如何pubcookie知道用戶是誰,如果她沒有通過認證? – hakre

+0

它不;如果用戶通過身份驗證但不需要身份驗證,我無法獲得身份驗證。我希望能夠以某種方式獲得身份驗證,這種身份驗證只能告訴我它是否存在。 – meustrus

+0

請詳細說明。你的句子聽起來和我完全矛盾,我有問題來解讀它。 – hakre

回答

0

那麼它看起來像我發現在PubcookieNoPrompt的Apache我自己的答案。它的確如我所願。它只需用登錄腳本已指令關閉,像這樣配對:

的.htaccess:

PubcookieAppID #APPID# 
PubcookieNoPrompt on 
AuthType NetID 
require valid-user 

<Files login.php> 
    PubcookieNoPrompt off 
</Files> 

的login.php中的文件可以做任何事情,包括將用戶重定向基於GET數據返回到具有登錄鏈接的頁面。

相關問題