2009-10-19 115 views
1

http://localhost/tmp/我有一個要求輸入用戶名和密碼(認證)的表單。 用戶發帖後(點擊確定)我想將用戶重定向到使用Apache的基本身份驗證類型的http://localhost/test/。發生在表單中輸入的用戶名和密碼正好是在http://localhost/test/ 進行身份驗證的憑據我想要的是解決方案,以便用戶在第二個地址時不會被要求輸入密碼。到目前爲止,我能夠使用CURL(使用GET)傳遞'Authorization:Basic'base64_encoded用戶和密碼'',並獲得我想要的響應(例如test/index.html的內容)。然而,這是curl獲取信息,而不是我的瀏覽器重定向與預授權。也就是說,如果我在地址欄中鍵入http://localhost/test/,它會再次請求密碼。有任何想法嗎?任何澄清需要?HTTP預授權

回答

2

的問題是,授權狀態保持在瀏覽器中一個偉大的工具,並沒有真正的方式來告訴它授權的瀏覽器。

大多數系統都依賴Cookie系統,但BASIC/DIGEST HTTP AUTH是HTTP頭。所以,只有瀏覽器可以設置這些。

我應該說,對於正常的每一天的請求 - 你可能(我不知道)能夠在XHR中設置標題。

0

您能否簡單地將表單提交位置設置爲重定向destionation http://localhost/test/並在此處注意身份驗證?

順便說一句,Fiddler對於調試這樣的事情

+0

沒有,因爲測試/使用webdav,所以我想在tmp /(做一些其他的東西)預先認證,並有測試/重定向時已經可以訪問。 – Eduardo 2009-10-19 20:53:32

0

威爾的答案指出你在正確的方向。

至少在IE中,它的作用是通過用戶名/密碼參數(在Open()調用中)發送一個XHR請求(到一些不需要的頁面)。這樣做會在瀏覽器會話內部緩存這個用戶名和密碼,所以當你隨後訪問服務器上的其他頁面時,認證應該自動發生在那些頁面上。

我不能說這個技巧是否適用於其他瀏覽器。