SSL with the .NET Compact Framework(一) 连接中断了

 最近项目出了一个问题,服务器端的SSL的证书更换了。加密key的长度用1024位升级到2048位。结果出问题了。客户端末通信是全都连不上服务器了。

 于是就解决呗,解决的途中却让我更加的摸不到头脑了。

 当初在做webService声明的时候,就是通过VS2005的WEB引用,自动生成webservice。

但是做的时候,用的自己的机器,svr.url = http://XXX.XXX.XXX.XXX/webservice.aspx,

而在部署的时候把这个svr.url改成了svr.url=https://www.XXXXXX.com/webservice.aspx 

经过测试,无论是模拟器还是手机均顺利通过,就没有考虑http和https会带来多少不同。 

 

出了问题后开始考虑为什么证书更换后,https就连接不上服务器了呢?


查找资料找到 http://msdn.microsoft.com/en-us/library/bb738067.aspx


该资料上说,适用的平台是

           Windows Mobile 6 Professional

           Windows Mobile 6 Standard

           Windows Mobile 6 Classic

           Microsoft Visual Studio® .NET 2005

           Microsoft .NET Compact Framework version 2.0

对我完全适合,太好了

一大篇废话后,终于看到 SSL with the .NET Compact Framework这个要点了

看到里面说了一句话:

However, in a .NET Compact Framework application you will not automatically get this option to confirm the use of a certificate with a problem.

心里一阵阵的深寒啊,上面说 .net Compact Framework application不能自动得到证书。

额滴神啊。。。。。。。我们以前的source是怎么样验证了证书后连接到HTTPS的呢??

这个问题一直都没有找到原因。后来我才想应该是在做web参照引用声明webservice的时候,.net Compact Framework做了什么事情,但是具体什么什么事情,我就不知道了。

但明显和我看到的那篇文章所说的现象是不符的。

这个文字在CSDN上提了问题http://topic.csdn.net/u/20100621/08/771fa62d-4f30-4ad8-acde-1be5486a9585.html 但是至今没有得到合适的回答。 

好了,先假装出问题之前能取得链接和我没有半毛钱关系(自己寒自己一个!咱咋就这么没有钻研精神捏??)

 

不管怎么样,先让客户连接上吧,怎么处理呢?

还是那篇文章中,提到一个人在blog中提到解决方法,(不知道微软官方是否赞同这种做法,为什么还要引用别人的博客来说明解决方案啊)

此人重新实现了ICertificatePolicy接口,这个接口就是做证书认证的。

 

C#代码

public class TrustAllCertificatePolicy : ICertificatePolicy   
{   
    public TrustAllCertificatePolicy()   
    {   
    }   
    
    public bool CheckValidationResult(ServicePoint sp,   
        X509Certificate cert, WebRequest req, int problem)   
    {   
        return true;   
    }   
}   

 

Vb代码

Public Class TrustAllCertificatePolicy  Implements System.Net.ICertificatePolicy   
    Public Sub New()   
    End Sub   
    Public Function CheckValidationResult(ByVal sp As ServicePoint, _   
 ByVal cert As System.Security.Cryptography.X509Certificates.X509Certificate, _   
ByVal req As WebRequest,  _   
ByVal problem As Integer) As Boolean Implements ICertificatePolicy.CheckValidationResult   
        Return True   
    End Function   
End Class  


 

之后,在webservice调用之前,用这个TrustAllCertificatePolicy 类来接管证书认证处理。

 

C#代码
<SPAN style="FONT-SIZE: small">system.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();</SPAN>  
system.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy()

   

这样就避开了证书不对的问题,无视证书是否存在或者正确,都能通过证书验证,之后进行https的加密传输了。

OK,连接上了吧。

我的问题又来了,证书都没有,https是如何进行加密的,这个通信连接到底有没有加密?如果不加密的话那用https干嘛?

客户的数据是不是安全不说了,向verisign申请SSL证书的钱不是打水漂了?(有点本末倒置了,嘎嘎)

是要解决Https的验证问题,也同样需要保证链接是加密的对吧。

那么https是通过怎么样流程达到了加密的目的呢?

有问题问google,没有问题创造问题也要问google。(怎么一点都不低碳啊!要创建和&谐社会不是?)


 

HTTPS怎么链接,咱去调查一下。

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NET compact FrameWork移动开发指南 * 书名:.NET compact FrameWork移动开发指南 * 作者:颜友宁 * 来源:清华大学出版社 * 出版时间:2006年11月 * ISBN:暂无 * 定价:63元 看 书 评 论 收 藏打 分 购 买 图书版权归出版社和作者所有,CSDN & DearBook独家提供试读和连载 内容介绍: 全书共6篇。第1篇主要介绍了Windows Mobile平台、.NET Compact Framework和开发工具Visual Studio 2005。第2篇主要介绍了在C/S架构的移动应用程序中,如何利用.NET Compact Framework进行GUI设计和客户端应用的编程。第3篇主要介绍了.NET全新的数据访问模型ADO.NET和XML处理技术。第4篇主要介绍了移动Web应用程序的开发以及移动智能设备所支持的网络技术。第5篇主要介绍了移动应用高级功能,如P/Invoke、POOM、资源与本地化、多线程编程、性能优化和移动安全策略等的开发。第6篇从实际... 目录 * 目录 序言 * 前言 第2章 .NET Compact Framework简介 * 2.1 概述 * 2.2 公共语言运行库 * 2.3 .NET Compact Framework类库 * 2.4 .NET Compact Framework不包括的功能 * 2.5 小结 第8章 自定义控件 * 8.1 概述 * 8.2 自定义控件类型与创建方式 * 8.3 复合控件 * 8.4 扩展控件 * 8.5 自绘控件 * 8.6 自定义组件 * 8.7 小结 第11章 图形 * 11.1 概述 * 11.2 基础知识 * 11.3 绘制图形 * 11.4 绘制字符串 * 11.5 绘制图像 * 11.6 绘制图形报表 * 11.7 小结 第15章 SQL Server 服务器数据访问 * 15.1 概述 * 15.2 如何访问SQL Server数据库 * 15.3 使用SqlConnection连接数据库 * 15.4 使用SqlCommand查询数据库 * 15.5 向SQL语句传递参数 * 15.6 ExecuteReader方法 * 15.7 重载ExecuteReader方法 * 15.8 使用存储过程 * 15.9 DataSet和DataAdapter组件 * 15.10 使用事务 * 15.11 SQL错误处理 * 15.12 小结 第16章 SQL Server CE本地数据访问 * 16.1 概述 * 16.2 数据库基本操作 * 16.3 远程数据访问 * 16.4 合并复制 * 16.5 冲突 * 16.6 数据同步设计策略 * 16.7 小结 第17章 XML编程 * 17.1 概述 * 17.2 XML基础 * 17.3 DOM编程 * 17.4 通过DataSet处理XML * 17.5 XML Schema * 17.6 XML序列化 * 17.7 使用XPath表达式 * 17.8 使用XML配置文件 * 17.9 小结 第18章 注册表编程 * 18.1 概述 * 18.2 Windows Mobile注册表 * 18.3 使用注册表 * 18.4 注册表应用实例 * 18.5 注册表安全 * 18.6 小结 第19章 移动Web开发 * 19.1 概述 * 19.2 移动Web网站 * 19.3 ASP.NET移动控件 * 19.4 移动Web窗体设计 * 19.5 自定义ASP.NET移动控件 * 19.6 移动Web应用的国际化 * 19.7 移动Web网站安全性 * 19.8 小结 第23章 使用POOM * 23.1 概述 * 23.2 Pocket Outlook对象模型 * 23.3 访问POOM * 23.4 使用任务对象 * 23.5 使用联系人对象 * 23.6 使用约会对象 * 23.7 小结 第24章 多线程编程 * 24.1 概述 * 24.2 Windows CE进程和线程 * 24.3 .NET Compact Framework线程 * 24.4 多线程程序设计 * 24.5 简单的多线程示例 * 24.6 改进多线程示例 * 24.7 线程池 * 24.8 Timer类 * 24.9 线程内访问界面控件 * 24.10 死锁风险 * 24.11 线程同步 * 24.12 小结

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值