當用戶未經授權訪問頁面時,我發送HTTP 401.此外,根據HTTP/1.1 spec的要求,我還發送了一個WWW-Authenticate
標題。如何禁止由WWW-Authenticate頭引起的登錄對話框?
我知道至少有一種情況,忽略此標題會導致一個問題:Firebug(Net標籤將爲空)。
用戶可以使用電子郵件地址或用戶名以及密碼登錄。表單通過AJAX提交,JSON響應負責在成功登錄後重定向用戶,或在失敗時顯示錯誤消息。
在Windows Phone 8上,當出現此標題時會顯示自定義對話框。它的域名爲用戶名,密碼和域名。它也有複選框顯示密碼和請記住我的密碼。
問題是,這個對話根本不適用於應用程序的認證過程。
標題的值似乎並不重要,我試着用WWW-Authenticate: form
和WWW-Authenticate: blah
,但我無論如何都得到了對話。我怎樣才能抑制這一點,同時仍然堅持規範?
'表單通過AJAX提交 - 這是否意味着您通過html表單發送用戶/密碼?在這種情況下,你不應該使用'WWW-Authenticate',實際上甚至不使用'401',因爲它們是標準化HTTP認證的一部分,客戶端通過'[Authorization](http:// www。 w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8)'標題。但基於表單的身份驗證不是標準化的,HTTP並不爲您提供任何特殊的支持。 –
@Eugene我想多個來源給出相同的建議(SO帖子,博客等)並不總是意味着這是正確的建議。說爲標題使用自定義值會導致未定義的行爲是否正確?你可以發佈這個答案,所以我可以接受和獎勵賞金?謝謝! – Stijn
@Eugene在閱讀你的評論後,我發現[this](http://webmasters.stackexchange.com/a/24452/21304),確認你寫了什麼。 – Stijn