ASP.Net使用Https(证书)协议连接WebService

最近使用ASP.Net连接WebService,不过走的协议是Https的,我一般用的使用都是普通的http协议。所以刚开始有点不值从何下手,不过通过查阅资料,这条路是走通了,下面简单的记录一下使用方法。

这是网上的教程:

http://www.cnblogs.com/denylau/archive/2010/07/23/1783530.html

WebService入门教程。

http://www.cnblogs.com/sufei/archive/2010/03/14/https.html

HTTPS  ASP.Net访问WebService

有的朋友并不想直接添加Web引用,想要构建一个类然后供给整个程序使用。

首先要生成一个代理类,但是在生成代理类的时候遇到了问题,没有证书一直提示无法生成代理类。

通过WSDL我们可以发现,生成代理类有多种方式,第一种也是常用的写入一个WebService的连接,不过还可以通过文件生成代理类。通过访问wsdl的连接将源文件保存下来,另存为wsdl后缀名的文件。

使用命令参数转到D:/web 目录下

现在代理类已经生成了,我们就可以使用了。

关于介绍WSDL的帖子还是用很多的,下面是其中一篇

http://www.cnblogs.com/xiaobaidhg/archive/2007/04/11/707956.html

因为使用使用的证书所以在程序中使用过程中还会提示

"基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系"证书验证失败

http://www.cnblogs.com/sufei/archive/2010/03/23/1692811.html

在代理的构造方法中回调

public AxisServerExImplService(string ipAddr, string port)

{

this.Url = "https://" + ipAddr + ":" + port + "/OTPAuthenSystem/axis/services/asService?wsdl";

System.Net.ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;

}

private bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)

{

return true;

}

至此:我们就可以调用Https协议下的WebService了。

总结一下:

1、  首先要使用WebService有两种方式第一直接引用,第二,写一个代理类。代理类一定要通过WSDL生成,HTTPS协议下生成代理类的时候会提示证书不受信任。通过网页打开wsdl的地址,另存为一个后缀名为wsdl的文件。

2、  引用该类之后还会提示基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系”证书验证失败

在该代理类的构造方法中采用回调private static bool RemoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error){
            // trust any certificate!!!
            System.Console.WriteLine("Warning, trust any certificate");
            //为了通过证书验证,总是返回true
            return true;
    }

引用命名空间。

using System.Net;
    using System.Net.Security;
    using System.Security.Authentication;
    using System.Security.Cryptography.X509Certificates;

解决完这两个问题之后,其他的问题就迎刃而解了。

ASP.Net连接WebServer使用Https协议(证书)的更多相关文章

  1. jmeter用Firefox录制https协议证书问题解决

    录制脚本的时候,比如录制https协议的百度网站 https://www.baidu.com ,所有录制设置均正常,但是在jmeter录制控制器里面就是没有任何录制的请求. 这个时候提示说证书不对 1 ...

  2. jmeter之-用Firefox录制https协议证书问题

    录制脚本的时候,比如录制https协议的百度网站 https://www.baidu.com ,所有录制设置均正常,但是在jmeter录制控制器里面就是没有任何录制的请求. 这个时候提示说证书不对 1 ...

  3. selenium处理:您的连接不是私密连接的网站(https ssl 证书)

    当前我们遇到这样的问题,就要通过代码的层面去解决 requests的话verify参数设置为False selenium的话添加参数:--ignore-certificate-errors 测试代码: ...

  4. 下载https协议需要的cer证书

    一:https简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全 ...

  5. 《Apache数据传输加密、证书的制作》——涉及HTTPS协议

    首先了解http和https: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议. HTTPS和HTTP的区别: http是超文本传输协议,信息是明 ...

  6. 在linux下的apache配置https协议,开启ssl连接

    环境:linux 配置https协议,需要2大步骤: 一.生成服务器证书 1.安装openssl软件 yum install -y openssl mod_ssl 2.生成服务器私匙,生成server ...

  7. CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问

    参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问 ...

  8. HTTPS协议、TLS协议、证书认证过程解析

    一.HTTPS 协议 HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心. TSL可以理解为SSL (S ...

  9. IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)

    IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161   一.HTTPS 协议介绍 1,什么是 HTTP ...

随机推荐

  1. ADO.Net两种访问数据库模式

    在连接模式下的数据库访问通常包括以下几个步骤: 1.通过数据库连接类(DbConnection)链接类指定到数据库服务器的数据库 2.通过数据库命令类(DbCommand)在数据库上执行SQL命令,可 ...

  2. 回滚Swtichover

    从11.2.0.2开始,如果由于某种原因switchover没有成功,可以回滚switchover. For physical standby databases in situations wher ...

  3. WindowsForm界面 运行顺序 Form属性

    WindowsForm界面 运行顺序 Form属性 什么是类:1 类是面向对象编程的基本单元.类包含了两个成员 字段(Field)和方法方法(Method) 2 字段即变量 方法即函数什么是字段:字段 ...

  4. 七天学会NodeJS

    七天学会NodeJS  http://www.open-open.com/lib/view/1392611872538

  5. Python学习之编写三级菜单(Day1,作业二)

    作业二:多级菜单 三级菜单 可依次进入各子菜单 在各级菜单中输入B返回上一级Q退出程序 知识点:字典的操作,while循环,for循环,if判断 思路: 1.开始,打印一级菜单让用户进行选择(可以输入 ...

  6. Hibernate实现分页

    转自:http://blog.csdn.net/huqiub/article/details/4329541 分页在任何系统中都是非常头疼的事情,有的数据库在语法上支持分页,而有的数据库则需要使用可滚 ...

  7. .NET日志工具介绍

    最近项目需要一个日志工具来跟踪程序便于调试和测试,为此研究了一下.NET日志工具,本文介绍了一些主流的日志框架并进行了对比.发表出来与大家分享. 综述 所谓日志(这里指程序日志)就是用于记录程序执行过 ...

  8. android,在fragment中使用listview,不使用listfragment

    public class LeftFragment extends Fragment{ private ListView listView; @Override public View onCreat ...

  9. Memcached简明介绍

    官网介绍:http://memcached.org/ Free & open source, high-performance, distributed memory object cachi ...

  10. node.js介绍

    官网说明: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable ...