我正在使用 Monotouch 编写 iPhone 应用程序,我必须访问使用 https 保护的 WCF Web 服务。我已经在 Mac 机器上安装了证书,并且在 Mac 和模拟器中一切正常。现在在 iPhone 中,我想通过以编程方式将 .cer 文件放在应用程序包中来安装证书。请让我知道如何做到这一点。我是 Monotouch 的新手,所以我对此知之甚少。
是否有一些代码可以用来实现这一目标?如果无法做到这一点,还有其他方法可以实现吗?
我正在使用 Monotouch 编写 iPhone 应用程序,我必须访问使用 https 保护的 WCF Web 服务。我已经在 Mac 机器上安装了证书,并且在 Mac 和模拟器中一切正常。现在在 iPhone 中,我想通过以编程方式将 .cer 文件放在应用程序包中来安装证书。请让我知道如何做到这一点。我是 Monotouch 的新手,所以我对此知之甚少。
是否有一些代码可以用来实现这一目标?如果无法做到这一点,还有其他方法可以实现吗?
您可能已经知道 WS-* 完全建立在 http 请求之上,并且任何时候您处理大量 http 请求时,您可能会发现 ASIHTTPRequest 在 iPhone 上非常有用。但是,这不会让你 100% 到达那里。
从 iPhone 的角度来看,您有:
1 The URL loading system, which is a high level API for dealing with network resources of any kind
2 The CFNetwork C API which is lower-level and allows you a great deal more control of encrypting streams and network traffic any way you see fit
3 The Certificate, Key, and Trust Services that do the heavy lifting, and more specifically the X509 trust policies
在 Mac 上,您可以使用 Secure Transport,但据我所知,他们尚未将其移植到设备上,因此除非您打算将其带到桌面或刚刚进入,否则我不会因为阅读而分心学习一切的心情。
如果您正在使用 WCF 进行任何安全操作,您可能意识到的第一件事是您可以使用许多选项,但这一切都归结为以下简短列表:
1 Transport layer security (https) with clear text messages (xml/json/...)
2 Message layer security (encrypted message body) over an open transport (http)
3 Secured messages over a secured transport
一旦你得到一些工作,你会想要参考企业部署指南,特别是关于无线注册的文档,以便你可以在设备上安装证书。请记住,一切皆有可能,不要害怕使用该程序附带的 Apple 支持票之一 :)