NSURLCredential является постоянным? - PullRequest
2 голосов
/ 03 июня 2011

У нас есть проблема с нашим iPhone-симулятором, которая была вызвана использованием этой строки:

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

Проблема возникла, когда учетные данные были переданы вызову в

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

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

Итак, теперь, когда мы запускаем приложение, мы больше никогда не сталкиваемся с проблемой аутентификации, что довольно странно, даже если мы изменим учетные данные на

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

or even

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

Подведем итог:

Используя учетные данные постоянства постоянные, учетные данные каким-то образом сохраняются где-то и используются автоматически для доступа к тому месту, где нам нужно подтвердить свою подлинность.

Так что для целей тестирования мы действительно хотели бы удалить эти постоянные ... учетные данные.

Есть идеи у кого-нибудь?:)

Ответы [ 2 ]

4 голосов
/ 04 июня 2011

Вы пробовали просто сбросить симулятор?Это в меню симулятора.

2 голосов
/ 25 июля 2013

Это сохраняется в связке ключей.Чтобы перейти из NSURLCredentialPersistencePermanent в менее постоянное состояние, такое как NSURLCredentialPersistenceForSession, необходимо удалить его и создать заново.

Обратите внимание, что в некоторых версиях сброса средств симулятор НЕ очищает связку ключей.

...