5

AFNetworking は NTLM 認証をサポートしていますか?

私は ASIHTTPRequest がそれを実行できることを知っています。私は AFNetworking に移行しようとしていますが、それを処理できることを確認する必要があります。

私は本当にこれをインターネットで検索しましたが、この正確な答えを見つけることができませんでした.

皆さん、ありがとうございました。

4

1 に答える 1

6

はい、AFNetworking は、一般的に認証チャレンジに対してブロックベースの応答を提供することにより、NTLM 認証 (または基本的に任意の認証方法) をサポートします。

コード例を次に示します (operationが aなどであるAFHTTPRequestOperationと仮定しますAFJSONRequestOperation)。操作を開始する前に、認証チャレンジ ブロックを次のように設定します。

[operation setAuthenticationChallengeBlock:
 ^( NSURLConnection* connection, NSURLAuthenticationChallenge* challenge )
{
   if( [[challenge protectionSpace] authenticationMethod] == NSURLAuthenticationMethodNTLM )
   {
      if( [challenge previousFailureCount] > 0 )
      {
         // Avoid too many failed authentication attempts which could lock out the user
         [[challenge sender] cancelAuthenticationChallenge:challenge];
      }
      else
      {
         [[challenge sender] useCredential:[NSURLCredential credentialWithUser:@"username" password:@"password" persistence:NSURLCredentialPersistenceForSession] forAuthenticationChallenge:challenge];
      }
   }
   else
   {
      // Authenticate in other ways than NTLM if desired or cancel the auth like this:
      [[challenge sender] cancelAuthenticationChallenge:challenge];
   }
}];

通常どおり操作を開始またはキューに入れると、うまくいくはずです。

これは基本的に、Wayne Hartmanが AFNetworking に適用されたブログで説明している方法です。

于 2013-01-10T14:08:55.383 に答える