iOS, как правильно получить учетные данные из NSURLCredentialStorage?

Я столкнулся с проблемой, когда я не могу получить учетные данные из NSURLCredentialStorageдаже если я попробую это сразу после сохранения.

Учетные данные правильно отформатированы и принимаются сервером, они установлены как постоянные. У меня есть отладочный код для печати и подтверждения того, что учетные данные имеют удостоверение и сертификат. Однако, когда я пытаюсь извлечь его из хранилища учетных данных, отладка печатает все значения как Null, в то время как сами учетные данные не равны NULL.

Как правильно получить учетные данные из NSURLCredentialStorage?

-(void)saveCredential:(NSURLCredential*)credential forProtectionSpace:(NSURLProtectionSpace*)protectionSpace
{

    CLog(@"ATTEMPTING SAVE:");
    [self debugCredential:credential]; //credential is properly formatted

    [[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:credential
                                          forProtectionSpace:protectionSpace];


    NSURLCredential* retrievedTest = [[NSURLCredentialStorage sharedCredentialStorage]defaultCredentialForProtectionSpace:protectionSpace];

    CLog(@"ATTEMPTING RETRIEVAL:");
    [self debugCredential:retrievedTest]; //all values are null, credential is not null

}

-(void)debugCredential:(NSURLCredential*) credential
{

    CLog(@"DEBUG Credential: [%@]",credential);
    CLog(@"credential identity: %@", credential.identity);
    CLog(@"credential cert: %@", credential.certificates);
    CLog(@"credential persistence: %lu", (unsigned long)credential.persistence);
}

Вот логи до и после сохранения

//before save
2016-02-17 16:24:19.669 GWNMobile[2925:716139] DEBUG Credential: [<NSURLCredential: 0x16ff6c00>: (null)]
2016-02-17 16:24:19.670 GWNMobile[2925:716139] credential identity: <SecIdentityRef: 0x16e24890>
2016-02-17 16:24:19.670 GWNMobile[2925:716139] credential cert: (
    "<cert(0x16f9c750) s: [Name] i: [Issuer]>"
)
2016-02-17 16:24:19.670 GWNMobile[2925:716139] credential persistence: 2

//after retrieval:
2016-02-17 16:24:19.670 GWNMobile[2925:716139] ==========================
2016-02-17 16:24:19.691 GWNMobile[2925:716139] ATTEMPTING RETRIEVAL:
2016-02-17 16:24:19.691 GWNMobile[2925:716139] DEBUG Credential: [(null)]
2016-02-17 16:24:19.691 GWNMobile[2925:716139] credential identity: (null)
2016-02-17 16:24:19.691 GWNMobile[2925:716139] credential cert: (null)
2016-02-17 16:24:19.691 GWNMobile[2925:716139] credential persistence: 0

0 ответов

Другие вопросы по тегам