当我连接到需要客户端证书的SSO X509连接时,我提供了凭据并且成功了。 下次执行didReceiveChallenge委托方法时,auth方法是NSURLAuthenticationMethodServerTrust,我有以下代码用于此authMethod
completionHandler(NSURLSessionAuthChallengeUseCredential,[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
对于下一个请求,我再次将authMethod作为NSURLAuthenticationMethodClientCertificate。
所以基本上对于每个请求,委托方法都被命中两次,一次使用authMethod作为NSURLAuthenticationMethodClientCertificate,第二次使用authMethod NSURLAuthenticationMethodServerTrust
我不想为每个请求重复获取authMethod作为NSURLAuthenticationMethodClientCertificate。
这是什么原因以及如何避免它?它会影响每次验证的性能
答案 0 :(得分:0)
我知道你需要做三件事来避免这个问题:
NSURLSession
次会话。套接字和TLS会话缓存都不会从一个会话共享到另一个会话,因此如果您不重复使用会话,您将会对每个请求进行全面的身份验证。如果这些都没有帮助,请打开DTS事件,Quinn或Rich可以帮助您调试问题。 : - )