ASP.Net连接WebServer使用Https协议(证书)
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协议(证书)的更多相关文章
- jmeter用Firefox录制https协议证书问题解决
录制脚本的时候,比如录制https协议的百度网站 https://www.baidu.com ,所有录制设置均正常,但是在jmeter录制控制器里面就是没有任何录制的请求. 这个时候提示说证书不对 1 ...
- jmeter之-用Firefox录制https协议证书问题
录制脚本的时候,比如录制https协议的百度网站 https://www.baidu.com ,所有录制设置均正常,但是在jmeter录制控制器里面就是没有任何录制的请求. 这个时候提示说证书不对 1 ...
- selenium处理:您的连接不是私密连接的网站(https ssl 证书)
当前我们遇到这样的问题,就要通过代码的层面去解决 requests的话verify参数设置为False selenium的话添加参数:--ignore-certificate-errors 测试代码: ...
- 下载https协议需要的cer证书
一:https简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全 ...
- 《Apache数据传输加密、证书的制作》——涉及HTTPS协议
首先了解http和https: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议. HTTPS和HTTP的区别: http是超文本传输协议,信息是明 ...
- 在linux下的apache配置https协议,开启ssl连接
环境:linux 配置https协议,需要2大步骤: 一.生成服务器证书 1.安装openssl软件 yum install -y openssl mod_ssl 2.生成服务器私匙,生成server ...
- CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问
参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问 ...
- HTTPS协议、TLS协议、证书认证过程解析
一.HTTPS 协议 HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心. TSL可以理解为SSL (S ...
- IIS - 自动申请、部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议)
IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161 一.HTTPS 协议介绍 1,什么是 HTTP ...
随机推荐
- ADO.Net两种访问数据库模式
在连接模式下的数据库访问通常包括以下几个步骤: 1.通过数据库连接类(DbConnection)链接类指定到数据库服务器的数据库 2.通过数据库命令类(DbCommand)在数据库上执行SQL命令,可 ...
- 回滚Swtichover
从11.2.0.2开始,如果由于某种原因switchover没有成功,可以回滚switchover. For physical standby databases in situations wher ...
- WindowsForm界面 运行顺序 Form属性
WindowsForm界面 运行顺序 Form属性 什么是类:1 类是面向对象编程的基本单元.类包含了两个成员 字段(Field)和方法方法(Method) 2 字段即变量 方法即函数什么是字段:字段 ...
- 七天学会NodeJS
七天学会NodeJS http://www.open-open.com/lib/view/1392611872538
- Python学习之编写三级菜单(Day1,作业二)
作业二:多级菜单 三级菜单 可依次进入各子菜单 在各级菜单中输入B返回上一级Q退出程序 知识点:字典的操作,while循环,for循环,if判断 思路: 1.开始,打印一级菜单让用户进行选择(可以输入 ...
- Hibernate实现分页
转自:http://blog.csdn.net/huqiub/article/details/4329541 分页在任何系统中都是非常头疼的事情,有的数据库在语法上支持分页,而有的数据库则需要使用可滚 ...
- .NET日志工具介绍
最近项目需要一个日志工具来跟踪程序便于调试和测试,为此研究了一下.NET日志工具,本文介绍了一些主流的日志框架并进行了对比.发表出来与大家分享. 综述 所谓日志(这里指程序日志)就是用于记录程序执行过 ...
- android,在fragment中使用listview,不使用listfragment
public class LeftFragment extends Fragment{ private ListView listView; @Override public View onCreat ...
- Memcached简明介绍
官网介绍:http://memcached.org/ Free & open source, high-performance, distributed memory object cachi ...
- node.js介绍
官网说明: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable ...