2012-07-26 213 views
7

可能有辦法設置一個人的.htaccess文件來每次都提示進行身份驗證嗎?例如:我打開一個瀏覽器選項卡,轉到pw保護的url,提示輸入pw。關閉標籤(主瀏覽器仍然打開)並重覆上述操作,並再次提示輸入pw。除非關閉瀏覽器,否則不會發生這種情況。也許這是一個緩存的東西?.htaccess提示輸入密碼

這是我到目前爲止有:提前

AuthType Basic 
AuthName "myName" 
AuthUserFile "/home/myDir/.htpasswds/public_html/myName/passwd" 
require valid-user 

感謝。

回答

6

事實上,它正在這樣(簡化):

  • 瀏覽器發送請求到服務器沒有憑據
  • 與403錯誤Apache的響應,因爲「需要有效的用戶」中指定
  • 瀏覽器的提示用戶名爲&密碼
  • 瀏覽器再次發送請求,此時提供憑證
  • Apache根據AuthUserFile驗證憑據並將「有效用戶」進行相應的
  • ,如果一切正常 - 推出數據和200個狀態碼
  • 瀏覽器接收使用憑證相關域200級緩存,直到瀏覽器會話過期

正如你所看到的 - 問題出現在瀏覽器中。您不能強制瀏覽器忘記它用於域名的密碼。通常你不想 - 例如,如果密碼保護頁面包含圖像 - 瀏覽器將需要每個下載的圖像的用戶名和密碼。

但也有一些提示,你可以嘗試:

  • 你可以寫你自己的Apache授權處理,只有授權用戶它正在訪問的頁面2回1次;但很難做到這一點
  • 您可以使用某種基於表單的身份驗證(如php或asp.net腳本)而不是依賴http身份驗證;這種方式是非常靈活的
  • 你可以做一個詭計,每次訪問受保護的頁面某種腳本更改passwd文件中的密碼;然後爲每個用戶提供兩個密碼並在每個請求上切換它們;這種方式瀏覽器總是記住「錯誤」的密碼;它似乎很瘋狂,但這是我能想到的最簡單的解決方案:-)