我在iOS 10中使用相互身份验证,if语句相互认证正常工作。
-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
if ([protectionSpace authenticationMethod] == NSURLAuthenticationMethodServerTrust) {
// do something
} else if ([protectionSpace authenticationMethod] == NSURLAuthenticationMethodClientCertificate) {
// Do something
}
}
在iOS 10中,响应返回
NSURLProtectionSpace* protectionSpace = challenge.protectionSpace;
NSURLAuthenticationMethodClientCertificate
问题出在iOS 11的响应中:
NSURLAuthenticationMethodServerTrust
如何强制该响应返回 NSURLAuthenticationMethodClientCertificate 第一个tome而不是 NSURLAuthenticationMethodServerTrust 。
感谢任何帮助:)
答案 0 :(得分:0)
经过几个小时的研究,我将在这里回答。 在iOS 11中, NSURLAuthenticationMethodServerTrust 始终首先到达,然后传递给 NSURLAuthenticationMethodClientCertificate ,但在iOS 10中,它的工作正好相反。