ios – NSURLAuthenticationMethodServerTrust是ssl

前端之家收集整理的这篇文章主要介绍了ios – NSURLAuthenticationMethodServerTrust是ssl前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法理解NSURLAuthenticationMethodServerTrust.在我的应用程序中,我必须使用基于服务器的http和https连接.我的问题是如果我得到一个NSURLAuthenticationMethodServerTrust挑战,它是一个安全的假设,采取是作为https连接.我应该究竟应对这一挑战.

任何帮助,将不胜感激.
谢谢

解决方法

我不确定接收NSURLAuthenticationMethodServerTrust是否始终指示https连接.我不明白为什么或如何普通的http连接可能导致NSURLAuthenticationMethodServerTrust身份验证质询,所以我假设它是https但我不确定.
但NSURLAuthenticationChallenge有一个NSURLProtectionSpace,后者又有一个属性 receivesCredentialSecurely.文档有点不明确,但我认为这个属性表明与服务器的安全连接,在http / https情况下,这意味着它是https.

关于回应什么,关于这个主题的macnetworkprog-mailinglist上有一个有用的帖子:Question Answer

简介:NSURLAuthenticationMethodServerTrust与您(客户端)无关,它响应服务器的身份验证质询,而是让您(客户端)有机会检查您是否应该完全信任服务器.在这种情况下,challenge的protectSpace包含serverTrust对象/结构,其中包含验证是否应该信任此服务器所需的所有信息.通常,您将使用SecTrustEvaluate函数检查serverTrust并根据该检查的结果执行操作.您可以在此处找到更多信息:Overriding TLS Chain Validation Correctly

如果检查确定服务器应该信任您create an NSURLCredential with the serverTrust object并将其传递给身份验证质询发件人/完成块.

你可以在这里找到一个相当广泛的示例项目:http://developer.apple.com/library/ios/#samplecode/AdvancedURLConnections/Introduction/Intro.html它已经很老了(iOS 3/4,前弧),只处理旧的NSURLConnectionDelegate,它必须委托方法而不是一个(比如新的和NSURLSessionDelegate).但是,那里显示的验证以及您可以实施的不同方案仍然适用,并且应该可以轻松转移到NSURLSession.

猜你在找的iOS相关文章