我正在使用url"http://user:password@example.com/stuff.xml"进行HTTP请求,并且我注意到用户凭据正在缓存和使用。如果我尝试使用无效的凭据首先登录,则无法工作。但是,如果我使用有效的用户名/密码登录,然后尝试使用无效的用户名/密码再次登录,它使用我刚刚使用的有效凭据,而不是url中的内容。
我一直在看NSURLCredentialStorage可能删除任何保存,但我需要指定一个NSURLProtectionSpace,我不确定那是什么。
:
我做了一个didReceiveAuthenticationChallenge
委托方法,在NSURLCredential
中设置用户名和密码,持久性设置为NSURLCredentialPersistenceNone
,但似乎委托方法甚至没有被调用第二次。
更新2 :
似乎无论我做什么,身份验证都被保存在某个地方。它所验证的域似乎没有保存在sharedCredentialStorage
中。
当我设置canAuthenticateAgainstProtectionSpace
为假,它不使用didReceiveAuthenticationChallenge
,但认证凭证(这是url的一部分,而不是挑战响应)似乎仍然得到缓存!
这个看似直截了当的问题并不是直截了当的,而且非常令人沮丧。这一切都可能是一个bug吗?
凭据通常存储为cookie;尝试删除所有存储的cookie