みんな、おはよう、
認証が必要なリモート Web サービスからいくつかの GET を実行するアプリケーションを作成しようとしています。私の主な問題は、これらのリモート サーバーの大部分 (および多数のサーバー) が有効な証明書を持っていないことです。無効な証明書を受け入れるコードと、正しい uname & pass (以下) でチャレンジに応答するコードがあります。私が抱えている問題は、2つを一緒にプレイすることです。NSURLCredential
両方のチャレンジを送信する方法、またはコールバックを正しくチェーンする方法を見つけることができないようです。それらをチェーンしようとすると、2回NSURLRequest
呼び出すことができませんdidReceiveAuthenticationChallenge
。
どんな考えでも大歓迎です!
認証用コード...
-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
if(!hasCanceled){
if ([challenge previousFailureCount] == 0) {
NSURLCredential *newCredential;
newCredential=[NSURLCredential credentialWithUser:_username password:_password persistence:NSURLCredentialPersistenceNone];
[[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge];
}
else {
[[challenge sender] cancelAuthenticationChallenge:challenge];
NSLog(@"Bad Username Or Password");
badUsernameAndPassword = YES;
finished = YES;
}
}
}