2011-06-03 2 views
2

Nous avons un problème avec notre iPhone simulateur qui a été causé par l'utilisation de cette ligne:NSURLCredential est permanent?

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

Le problème a été créé lorsque les informations d'identification a été donnée au défi sur au

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

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

Alors maintenant, quand nous courons l'application, nous ne serons jamais plus jamais dans le challenge d'authentification, ce qui est assez étrange, même si nous changeons le credential à

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

or even 

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

Pour résumer:

En utilisant credentialpersistencepermanent, le justificatif d'identité est en quelque sorte enregistré quelque part et utilisé automatiquement pour accéder partout où nous devons nous authentifier. Donc, à des fins de test, nous aimerions vraiment supprimer ce droit d'accès permanent ....

Vous avez des idées? :)

+1

Si quelqu'un répond à cette question en déclarant que je devrais seulement réinitialiser le simulateur de l'iPhone, je vais marquer cette réponse comme correcte. En fait, il a résolu le problème, nous n'y avons jamais pensé. – doge

+1

Il n'y a pas de règles contre vous affichant votre propre réponse :) –

Répondre

4

Avez-vous essayé de réinitialiser le simulateur? C'est dans le menu Simulator.

+1

Merci, fonctionne comme un charme. C'est idiot de ma part. – doge

2

Il est sauvegardé dans le trousseau de clés. Pour passer de NSURLCredentialPersistencePermanent à un état moins permanent comme NSURLCredentialPersistenceForSession, vous devez l'enlever et le recréer.

Notez que dans certaines versions des outils réinitialisation du simulateur ne supprime pas le trousseau.