Вам случается кэшировать кэш учетных данных?Если нет, вы можете пренебречь всем следующим:)
Я не знаю, какой режим аутентификации вы выбираете, здесь у меня есть пример использования режима аутентификации Windows в моем приложении для iphone.Когда на стороне сервера возникают проблемы со стороны клиента, мое приложение отправит обратно объект NSURLCredential:
NSURLCredential* credential = [NSURLCredential credentialWithUser:login password:password persistence:NSURLCredentialPersistenceForSession];
Здесь вы можете увидеть параметр NSURLCredentialPersistenceForSession, следующее описание:
typedef enum {
NSURLCredentialPersistenceNone, // Credential won't be stored.
NSURLCredentialPersistenceForSession, // Credential will be stored only for this session.
NSURLCredentialPersistencePermanent // Credential will be stored in the user’s keychain and shared with other applications.
} NSURLCredentialPersistence;
Как вы можетевидите, если вы используете NSURLCredentialPersistenceForSession cre учетные данные будут кэшированы, а соединение обратного вызова: didReceiveAuthenticationChallenge: никогда не будет вызываться, когда сервер вызывает клиента, если вы не очистите его в NSURLCredentialStorage.Так что это делает ваши изменения учетных данных бесполезными.Вы можете использовать NSURLCredentialPersistenceNone, чтобы отключить кеш или очистить кеш при необходимости.