如何在Cocoa中使用WebView与客户端证书连接?
|
我正在尝试连接到需要客户端证书的服务器。
因此,浏览到该服务器时发生的正常事件流程是Web浏览器(Safari和Chrome)都提示用户选择证书并重试该操作。
那么如何在Cocoa项目的嵌入式WebView中完成此任务?
到目前为止,我已经确定在
didFailProvisionalLoadWithError
方法中会引发错误:
- (void)webView:(WebView *)sender didFailProvisionalLoadWithError:(NSError *)error forFrame:(WebFrame *)frame {
NSLog(@\"webView:didFailProvisionalLoadWithError:forFrame:\");
NSLog(@\" error = %@\", error);
}
错误的确是error = Error Domain=NSURLErrorDomain Code=-1206 UserInfo=0x1006a8030 \"The server “myserver.xxx” requires a client certificate.
但是,如何显示对话框,以便用户可以从钥匙串中选择证书?
没有找到相关结果
已邀请:
2 个回复
犁攀富
显然,在真实应用中,您需要显示一些用户界面,然后, 用户已选择客户端身份,并为其创建凭据 (+ [NSURLCredential credentialWithIdentity:certificates:persistence:]) 然后将那个凭据应用于挑战 (-useCredential:forAuthenticationChallenge :)。 * * *那么,从这里开始呢?无论您做什么,都应该 针对WebView提交错误以获取 -webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:在公共标头中发布的委托回调。很明显 最烦人的是,遗漏了http://developer.apple.com/bugreporter/ 提交错误后,请将错误号发送给我,以便我可以 将其与此事件关联。除此之外,前进的道路更少 明确。如果您要创建非Mac App Store应用,我的建议是 就是您只需实施 \'canAuthenticateAgainstProtectionSpace \'委托回调 如上所示,继续您的生活。 OTOH,如果您要创建一个 Mac App Store应用程序,其中使用私有API,包括委托 回调,是严格禁止的,生活变得更加棘手。让我 知道这种情况,我们可以讨论您的选择。分享和享受
疾桓
中存储的证书中创建
的方法:
这来自另一个问题。您可能还会发现此问题有帮助。我是通过Google搜索“ nsurlcredential证书”找到的。