目录
3. 判断Authentication Challenge的类型
NSURLSession 引入后, request被包装进data task或者download task中发送至server, 如果server需要客户端的认证, session task 会尝试处理,如果无法处理则会发起客户端的challenge,调用Session 或者 task didReceiveChallenge的代理方法。如何handle一个challenge, 苹果有官方文档:
主要就是要实现didReceiveChallenge的代理方法并在代理方法中handle challenge, 对服务器做出正确回应。
1. Challenge 类型
Challenge类型可以从challenge的 property NSURLProtectionSpace
authenticationMethod 获取,主要有以下几种类型:
Session-Wide Authentication Challenges
Use client certificate authentication for this protection space.
NSURLAuthenticationMethodNegotiate - 如果windows authenticaiton 配置了Kerberos和NTLM,需要向用户端确认是哪个,所以是negotiate
Negotiate whether to use Kerberos or NTLM authentication for this protection space.
NSURLAuthenticationMethodNTLM
- Windows authenticaito