5

アプリケーションがアプライアンスに対して認証されるようにします。つまり、https 経由でユーザー名とパスワードを渡します。

いくつかの例を見て、基本的に次のように構築しました。

-(void)authentication
{
    //setting the string of the url taking from appliance IP.
    NSString *urlString =[NSString 
                          stringWithFormat:
                          @"http://%@",appliance_IP.text];
    //define the url with the string
    NSURL *url = [NSURL URLWithString:urlString];

    //creating request
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    //setting credential taking from the username and password field
    NSURLCredential *credential = [NSURLCredential credentialWithUser:username.text password:password.text persistence:NSURLCredentialPersistenceForSession];


    NSURLProtectionSpace *protectionSpace=
    [[NSURLProtectionSpace alloc]initWithHost:urlString port:443 protocol:@"https" realm:nil authenticationMethod:nil ];


    [[NSURLCredentialStorage sharedCredentialStorage] setDefaultCredential:credential forProtectionSpace:protectionSpace];

    [ NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:NULL];

}

上記の例の NSURLConnection には、ユーザー名とパスワードが含まれていません。追加するにはどうすればよいですか? そのため、リクエストにはユーザー名とパスワードも含まれるか、その情報を渡す方がよい場合があります。現在、リクエストには URL 文字列のみが含まれています。

ありがとうER

4

2 に答える 2

0

NSURLConnectionDelegateイベントを処理するにはデリゲートを使用する必要がありNSURLConnectionます。

認証には、次の 2 つのデリゲート メソッドがありますconnection:canAuthenticateAgainstProtectionSpace:connection:didReceiveAuthenticationChallenge:

URL ローディング システム プログラミング ガイドの例を参照してください。

于 2012-04-08T14:40:38.227 に答える