Я пытаюсь удалить NSURLCredential, который записывается при доступе к безопасному сайту HTTP. Приведенный ниже код работает и удаляет NSURLCredential
из NSURLCredentialStorage
, но хотя я указываю, что:
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
не перезагружает кэшированные данные, и я реализовал метод:
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse {
return nil;
}
при следующем запуске приложения deleteStoredCredential находит новые учетные данные для «loginSiteName.com» и удаляет их. У меня вопрос: я что-то упустил, есть ли где-то еще, что мне нужно очистить, можно ли кэшировать учетные данные на iPhone?
-(void)deleteStoredCredential {
NSURLCredentialStorage *sharedCredentialStorage = [NSURLCredentialStorage sharedCredentialStorage];
NSDictionary *DICT_allProtectionSpaces = [sharedCredentialStorage allCredentials];
// DICT KEY = NSURLProtectionSpace
// DICT VALUE = NSDictionary
for(NSURLProtectionSpace *thisProtectionSpace in DICT_allProtectionSpaces) {
if([[thisProtectionSpace host] isEqualToString:@"loginSiteName.com"]) {
NSDictionary *DICT_allCredentials = [sharedCredentialStorage credentialsForProtectionSpace:thisProtectionSpace];
// DICT KEY = NSString (i.e. username)
// DICT VALUE = NSURLCredential
for(NSString *thisUserName in DICT_allCredentials) {
NSURLCredential *credentialToDelete = [DICT_allCredentials valueForKey:thisUserName];
NSLog(@"REMOVE UID: %@ WITH PWD: %@", [credentialToDelete user], [credentialToDelete password]);
[sharedCredentialStorage removeCredential:credentialToDelete forProtectionSpace:thisProtectionSpace];
}
}
}
}