我正在使用iOS sdk5.0。我正在使用NSURLConnection打一个链接并创建一个请求。但我的控制不是进入didReceiveAuthenticationChallenge方法。在iOS5.0中没有调用didReceiveAuthenticationChallenge吗?
答案 0 :(得分:14)
根据NSURLConnectionDelegate
connection:canAuthenticateAgainstProtectionSpace:
connection:didReciveAuthenticationChallenge:
connection:didCancelAuthenticationChallenge:
已弃用,新代码应采用
connection:willSendRequestForAuthenticationChallenge
旧代表仍将被要求兼容性,但在处理身份验证挑战时会产生更多延迟。
答案 1 :(得分:1)
我遇到了同样的问题(请参阅上面的评论)。在我的搜索中,我遇到了这个要点:https://gist.github.com/1675763。我尝试了AUTH_NEW路径中的代码。代表仍未被召集。然后我注意到第40行的评论: “也许iOS 5无法支持DSA签名算法。”
我做了一些搜索,没有发现任何迹象表明这是一个限制是一个问题。最后,在绝望中,我改变了这一点。我正在使用java的keytool(Java的重新发明的openssl +版本)来生成我的自签名证书。它默认使用DSA。出于绝望,我用一面旗帜强迫它使用RSA。然后委托被调用,上面的要点中的代码工作。
我还没有看到任何说明你不能使用DSA的文档。 openssl默认情况下似乎使用RSA,所以使用它的人可能永远不会碰到这个。
简短说明:检查您的证书并确保其已使用RSA而不是DSA签名。
答案 2 :(得分:0)
我想强调克里斯威斯汀的观点。除此之外,我实际上创建了一个RSA密钥,但意外地将DSA密钥复制到了服务器。因此,如果有疑问,您需要使用-v(详细)命令来确保您已获得适当的证书。例如:
keytool -list -v -keystore <name of keystore here>