EDIT:
credsを自分で設定するためには、ユーザー名とパスワードをbase64エンコードすることができ、適切なヘッダーを設定する必要があります。 Cocoa With LoveのMatt Gallagherは、これを簡単に行うためにhow to add a category to NSData
に投稿しました。
NSString* username = @"username";
NSString* password = @"password";
NSString* encodedUsername = [[username dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
NSString* encodedPassword = [[password dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
NSURL* url = [NSURL URLWithString:@"http://yourUrl.com/"];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
NSString* headerValue = [NSString stringWithFormat:@"Basic %@:%@", encodedUsername, encodedPassowrd];
[request addValue:@"Authorization" forHTTPHeaderField:headerValue];
[NSURLConnection connectionWithRequest:request delegate:self];
資格証明書のすべての使用と同様に、これらの証明書は、基本的にクリアテキストで渡されているので、あなたはすべてのHTTPS上でこれをやっていることを確認してください。はい、あなたは間違いなく(すなわち、いくつかの
https://...
URLを経由して)SSL経由の基本認証を行いたい、
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com/top_secret/"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setAuthenticationScheme:(NSString *)kCFHTTPAuthenticationSchemeBasic]; /** preemptively present credentials **/
[request setUsername:@"username"];
[request setPassword:@"password"];
[request startSynchronous];
NSError *error = [request error];
if (!error)
NSString *response = [request responseString];
そして:
didReceiveAuthenticationChallengeデリゲートは、プリエンプティブシステムでは決して呼び出されません。 (最初に.net webserviceを試してみましたが、デリゲートは正常に動作しました) –
@gabriel mendez - 要求に応じてcredsを設定するように更新されました。 –
私はヘッダが次のようなものでなければならないと思います: NSMutableString * loginString =(NSMutableString *)[@ "" stringByAppendingFormat:@ "%@:%@"、userName、password]; NSString * encodedLoginData = [Base64エンコード:[loginString dataUsingEncoding:NSUTF8StringEncoding]]; NSString headerValue = [@ "Basic" stringByAppendingFormat:@ "%@"、encodedLoginData]; 今は魅力のように働いています。ありがとうございました。 –