问题摘要:我正在MKNetworkKit
使用 Basic Auth 对 REST 服务器进行身份验证。我不是服务器端详细设置的专家。我所知道的是,它需要一个没有 SSL 的基本身份验证。
如果我使用有效的用户/密码对自己进行身份验证,并且如果我第二次使用一些虚假输入进行身份验证,它仍然会成功。我阅读了文档并尝试这样做:
[op setCredentialPersistence:NSURLCredentialPersistenceNone];
它不起作用。但如果我这样做:
[op setCredentialPersistence:NSURLCredentialPersistenceNone];
[op addHeader:@"Cookie" withValue:@""]; // a hunch I tried
然后它似乎起作用了。就好像某些 cookie 总是被传递,并且服务器甚至不检查授权标头就接受它。我已经做了一些测试,我将按照这个顺序(好,假,好)和(假,好,假)提供东西,它似乎按预期工作。
现在,有人可以指出,如果事情不应该这样工作,那么一定是某个地方存在错误,要么是服务器端,要么MKNetworkKit
是服务器端?如果我设置NSURLCredentialPersistenceNone
了,那么为什么添加该 Cookie 标头会使其工作?它一定已经覆盖了它本来要发送的东西并导致了错误的行为,因此“修复”了它。