我們實現了自定義驗證。用戶名和密碼在請求體內發送。如果用戶或密碼無效,則服務器將返回HTTP 401.服務器使用C#,MVC3和.NET 4.0實現。返回HTTP 401並說客戶端不要重複請求
我們面臨的問題是,如果客戶端收到401,那麼它會自動重發相同的請求2次。其實這只是iOS的問題。 iOS的人說,它發生在低級別,並且在應用程序中失控。所以可能服務器應該能夠說客戶端不再發送請求。
這對我們來說是個問題,因爲我們使用Active Directory,如果密碼無效,我們會花費3次嘗試而不是僅僅一次。因此,帳戶很快就會變得鎖定並出乎意料。
,我發現這個document,說
401未授權
...客戶端可以重複用合適的Authorization頭字段的請求。
如何返回HTTP 401並告訴客戶端不再重複請求?
是的,我想到了這個選項......但是我們已經有了一些與401一起工作的客戶端版本。它也應該爲他們工作,而不需要改變HTTP代碼。另一方面,401更適合未認證(請參閱http://stackoverflow.com/questions/3297048/403-forbidden-vs-401-unauthorized-http-responses)。 – wishmaster 2014-09-03 15:22:47