Does AFNetworking support NTLM authentication?
I know ASIHTTPRequest can do it, i'm trying to migrate to AFNetworking, but i have to be sure it will be able to deal with it.
I really searched the internet for this, but i was unable to find this exact answer.
Thank you all.
Yes, AFNetworking does support NTLM authentication (or basically any authentication method) by providing a block-based response to authentication challenges in general.
Here's a code example (assuming operation
is a AFHTTPRequestOperation
, AFJSONRequestOperation
etc.). Before starting the operation set the authentication challenge block like this:
[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];
}
}];
Start or enqueue the operation as usual and that should do the trick.
This is basically the method Wayne Hartman describes in his blog applied to AFNetworking.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With