博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Exchange开发(三) 在Https(SSL)执行web请求

Posted on 2004-11-22 14:58  jeseeqing  阅读(2326)  评论(4编辑  收藏  举报
 在做Exchange的应用时,WebDAV可能是用得比较多的一种开发技术。WebDAV是对Http协义的扩展,可以在C#中使用Web请求来对Exchange中的信息进行访问。

当我将Exchange虚拟目录设置为需要SSL安全通道时,并使用Windows 2000 Server自带的证书服务颁发自已的证书,当封装WebDAV请求时

WebResponse response = (HttpWebResponse)request.GetResponse();

系统会抛出WebException异常,其Status属性为WebExceptionStatus.TrustFailure

当将Exchange虚拟目录设置为不需要SSL安全通道时,则不引发任何异常。

 

原因:是由于安全证书的信任问题,因为你没有配置好信任你的企业安全证书;你可以尝试使用IE打开你所请求的URL,如果收到一个安全警告,代表安全证书还没有配置为信任的安全证书,则使用上述方法时会抛出异常;如果没有收到一个安全警告,表示你已经信任了此安全证书,则不会抛出异常。

 

解决方法:

方法1配置信任你访问的站点安全证书,则不会抛出WebException异常;

 

方法2实现ICertificatePolicy接口,在CheckValidationResult方法中返回true,再设置ServicePointManager

CertificatePolicy属性为刚刚实现的类;

代码示例如下:


 

然后再执行ServicePointManager.CertificatePolicy = new TrustAllCertification()

即可