2

次の行を使用したために発生した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];

要約する:

credentialpersistencepermanentを使用することにより、クレデンシャルはどこかに保存され、自分自身を強化する必要がある場所にアクセスするために自動的に使用されます。

したがって、テストの目的で、この永続的な...クレデンシャルを削除したいと思います。

誰かアイデアはありますか?:)

4

2 に答える 2

4

シミュレータをリセットしてみましたか?シミュレータメニューにあります。

于 2011-06-04T15:42:41.167 に答える
2

キーチェーンに保存されます。NSURLCredentialPersistencePermanentのような永続性の低い状態に移行NSURLCredentialPersistenceForSessionするには、それを削除して再作成する必要があります。

ツールの一部のバージョンでは、シミュレーターをリセットしてもキーチェーンがクリアされないことに注意してください。

于 2013-07-25T08:06:59.037 に答える