2012-12-09 3 views
3

La documentation Apple pour NSURLCredential indique qu'il n'est pas toujours possible de renvoyer un mot de passe. Mais à part la raison évidente pour laquelle aucun mot de passe n'a été stocké avec les informations d'identification, existe-t-il une raison pour que les informations d'identification par défaut stockées de manière permanente dans NSURLCredentialStorage ne renvoient pas de mot de passe de manière aléatoire?NSURLCredential mot de passe ne renvoie parfois pas de mot de passe

La chose étrange est un certain pourcentage du temps qu'il fonctionne bien. Mais de temps en temps, la lecture de la propriété password sur un identifiant par défaut renvoie nil. L'objet credential semble être valide à d'autres égards, mais la propriété password renvoie simplement nil. La lecture du mot de passe se produit dans un thread qui n'est pas le thread principal, donc je me demandais s'il y avait une limitation de thread, bien que je ne trouvais rien dans le doc.

Est-il possible que nous devions réessayer d'obtenir le mot de passe après un certain temps ou quelque chose?

Répondre

0

Si c'est permanent et que le porte-clés est verrouillé, cela le fera. La plupart des applications ne rencontrent pas ce problème, car le comportement par défaut ne ferait que verrouiller le trousseau dans des cas inhabituels. NSURLCredentials doit être stocké avec l'attribut kSecAttrAccessible par défaut (kSecAttrAccessibleWhenUnlocked). This article describes some of these behaviors.

Questions connexes