0

我想将 Android 客户端连接到 WCF Webservice。有几个很好的指南描述了如何做到这一点,但 https 的概念对我来说真的很模糊。这是我想要的:

1) 自托管 WebService 通过 https 与经过身份验证的客户端进行通信。用户数据库驻留在 SQL Server 上。该服务必须是任何用户执行的“简单安装”。用户将在他/她的 PC 上安装该服务,然后从 google play 下载客户端,仅使用 ipadress 配置它。

问题:似乎不可能使用 WCF 执行此操作,因为 wshttp 看起来需要在 mashine 上安装证书。一种可能的前进方式是在安装过程中生成一个自签名证书,但是我怎样才能以用户友好的方式将证书发送给 android 客户端?

2) 在 Google Play 上发布的能够与服务通信的 Android 应用程序。发送到服务的数据既可以是简单数据类型(字符串和整数数据),也可以是 3-25Mb 的大型二进制文件。

安装该服务的用户只知道他的 IP 地址,因此不必为任何证书问题或其他技术细节而烦恼。一种选择可能是使用消息而不是传输安全,但我在这方面的知识非常有限。

服务器和客户端之间传递的信息属于个人信息,可能包含密码,包括使用密码的匹配网站、个人信息、日历事件等。它不会包含汇款单、信用卡号或帐号。

服务器和客户端的核心功能或多或少已经实现。我现在需要保护客户端和服务器之间的通信。

任何有关开发此方法的好方法的建议将不胜感激!

4

1 回答 1

0

我想将服务器服务部署到最终用户的方式使得很难将 WCF 与 ssl 一起使用。其他选项会产生其他问题。我现在已经放弃了这个特定项目的 WCF,转而使用 Bouncy Castle、SslSocket 和自定义协议进行良好的旧套接字编程。这可能是我矫枉过正,但让我可以完全控制身份验证证书管理和正在发送的数据。我使用带有自签名证书的 ssl 并覆盖 android 中的证书验证方法,手动验证证书中的所有数据,除了重新解析主机名......对我来说足够了,因为我使用预共享密钥来加密和解密数据。

感谢所有帮助

于 2012-10-10T14:23:27.977 回答