AFNetworking は NTLM 認証をサポートしていますか?
私は ASIHTTPRequest がそれを実行できることを知っています。私は AFNetworking に移行しようとしていますが、それを処理できることを確認する必要があります。
私は本当にこれをインターネットで検索しましたが、この正確な答えを見つけることができませんでした.
皆さん、ありがとうございました。
AFNetworking は NTLM 認証をサポートしていますか?
私は ASIHTTPRequest がそれを実行できることを知っています。私は AFNetworking に移行しようとしていますが、それを処理できることを確認する必要があります。
私は本当にこれをインターネットで検索しましたが、この正確な答えを見つけることができませんでした.
皆さん、ありがとうございました。
はい、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 に適用されたブログで説明している方法です。