2011-06-03 84 views
2

我們與iPhone模擬器一個問題,即通過使用這一行造成的:NSURLCredential是永久的嗎?

Foo = [NSURLCredential CredentialWithUser:foo 
    password:bar persistance:NSURLCredentialPersistencePermanent]; 

當憑證交給了挑戰過在

 -(NSURLConnection *)connection 
     didReceiveAuthenticationChallenge(NSURLAuthenticationChallenge *)challenge 
    { 

     [[challenge sender]useCredential:Foo forAuthenticationChallenge:challenge]  
    } 

所以,現在情況是在創建問題我們運行應用程序,我們再也不會碰到認證挑戰了,這很奇怪,即使我們將憑證更改爲

Foo = [NSURLCredential CredentialWithUser:foo 
    password:bar persistance:NSURLCredentialPersistenceForSession]; 

or even 

    Foo = [NSURLCredential CredentialWithUser:foo 
    password:bar persistance:NSURLCredentialPersistenceNone]; 

總結:

通過使用credentialpersistencepermanent憑證以某種方式保存在某處並自動使用以訪問我們需要進行身份驗證的任何地方。

因此,爲了測試目的,我們真的想要刪除這個持久性...憑證。

任何想法的人? :)

+1

如果有人通過說明我應該只需重置iPhone模擬器來回答這個問題,我會將該答案標記爲正確。它實際上解決了這個問題,我們只是沒有想過。 – doge 2011-06-03 11:48:52

+1

有沒有規則反對你張貼自己的答案:) – 2011-06-03 14:26:14

回答

4

您是否嘗試過重置模擬器?它在模擬器菜單中。

+1

謝謝,作品像一個魅力。我多麼愚蠢。 – doge 2011-06-07 06:12:34

2

它保存在鑰匙串中。要從NSURLCredentialPersistencePermanent轉到較不持久的狀態,如NSURLCredentialPersistenceForSession,您必須將其刪除並重新創建。

請注意,在某些版本的工具重置模擬器不會清除鑰匙串。