在做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()
即可