問題摘要:我正在使用MKNetworkKit
並使用Basic Auth根據REST服務器對自己進行身份驗證。我不是服務器端詳細設置的專家。我所知道的是,它將採用沒有SSL的基本身份驗證。MKNetworkKit:如何清除身份驗證相關緩存
如果我使用有效的用戶/密碼對自己進行身份驗證,並且如果我第二次使用某些虛假輸入進行身份驗證,它仍然會成功。我閱讀文檔並試圖做到這一點:
[op setCredentialPersistence:NSURLCredentialPersistenceNone];
它不工作。但是,如果我這樣做:
[op setCredentialPersistence:NSURLCredentialPersistenceNone];
[op addHeader:@"Cookie" withValue:@""]; // a hunch I tried
然後它似乎工作。就好像某個cookie總是被傳遞,服務器接受它,甚至沒有檢查授權頭。我已經做了一些測試,我會按照這個順序(好,假,好)和(假,好,假)提供東西,而且它似乎按預期工作。
現在,有人可能會指出,如果這不是應該如何工作,那麼肯定有某個地方,或者是MKNetworkKit
或者服務器端?如果我設置了NSURLCredentialPersistenceNone
,那麼爲什麼要添加Cookie頭將使其工作?它必須覆蓋它會發送的東西並導致錯誤的行爲,從而「修復」它。
服務器可能在驗證後添加會話cookie。嘗試在請求之前和收到響應之後記錄'[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]'。 – Moxy