gpt4 book ai didi

ios - NSURLAuthenticationMethodServerTrust 是 ssl

转载 作者:可可西里 更新时间:2023-11-01 06:11:45 26 4
gpt4 key购买 nike

我无法理解 NSURLAuthenticationMethodServerTrust。在我的应用程序中,我必须同时使用基于服务器的 http 和 https 连接。我的问题是,如果我收到 NSURLAuthenticationMethodServerTrust 挑战,是否可以安全地假设为 https 连接。我究竟应该如何应对这一挑战。

如有任何帮助,我们将不胜感激。谢谢

最佳答案

我不确定接收 NSURLAuthenticationMethodServerTrust 是否总是表示 https 连接。我不明白为什么或如何一个普通的 http 连接会导致 NSURLAuthenticationMethodServerTrust 身份验证挑战,所以我假设它是 https,但我不确定。但是 NSURLAuthenticationChallenge 有一个 NSURLProtectionSpace,它又有一个属性 receivesCredentialSecurely .该文档有点不明确,但我假设此属性表示与服务器的安全连接,在 http/https 情况下这意味着它是 https。

关于回应什么,macnetworkprog-mailinglist 上有一个关于此主题的有用线程:Question + Answer

总结:NSURLAuthenticationMethodServerTrust 不是关于您(客户端)响应服务器的身份验证挑战,而是让您(客户端)有机会检查您是否应该信任服务器全部。在这种情况下,挑战的 protectionSpace 包含一个 serverTrust 对象/结构,其中包含验证该服务器是否应该被信任所需的所有信息。通常,您会使用 SecTrustEvaluate 函数来检查 serverTrust 并根据检查结果采取行动。您可以在此处找到更多信息:Overriding TLS Chain Validation Correctly

如果检查确定服务器应该信任你create an NSURLCredential with the serverTrust object并将其传递给身份验证质询发送者/完成 block 。

您可以在此处找到 Apple 的一个相当广泛的示例项目:http://developer.apple.com/library/ios/#samplecode/AdvancedURLConnections/Introduction/Intro.html它很旧(iOS 3/4,Arc 之前)并且只处理旧的 NSURLConnectionDelegate,它必须委托(delegate)方法而不是一个(比如新的和 NSURLSessionDelegate) .但是此处显示的验证和您可以实现的不同场景仍然适用,并且应该可以轻松转移到 NSURLSession

关于ios - NSURLAuthenticationMethodServerTrust 是 ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11120449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com