Có, AFNetworking hỗ trợ xác thực NTLM (hoặc về cơ bản bất kỳ phương thức xác thực nào) bằng cách cung cấp phản hồi dựa trên khối cho các thách thức xác thực nói chung.
Dưới đây là ví dụ về mã (giả sử operation
là AFHTTPRequestOperation
, AFJSONRequestOperation
, v.v ...). Trước khi bắt đầu các hoạt động thiết lập các khối xác thực thách thức như thế này:
[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 hoặc enqueue hoạt động như bình thường và nên làm các trick.
Đây là phương pháp cơ bản mà phương pháp Wayne Hartman describes in his blog áp dụng cho AFNetworking.
Nguồn
2013-01-10 14:08:55
có thể trùng lặp của [Xác thực NTLM AFNetworking?] (Http://stackoverflow.com/questions/12483465/afnetworking-ntlm-authentication) –