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 ...
随机推荐
- H面试程序(11): 判断字符串是否包含子串问题
题目描述: 如字符串str1为''abcdef''' 字符串str2为'' bc''; 则字符串str1中含有 ...
- 滚动视差效果——background-attachment
滚动视差效果的实现原理是在同一个页面上将页面元素分为多层,例如可以分为背景.内容.贴图层,在滚动页面的时候让三者滚动的速度不一,从而在人的视觉上能够形成一种立体的近似效果.最近在做一个项目wiki的时 ...
- Fix Elementary Boot Screen (plymouth) After Installing Nvidia Drivers
Q:I just installed propietary nvidia drivers, after that the glowing “e” plymouth theme was gone, on ...
- 【main()的参数探究】
恩...今天研究信安的课件的时候看到一段对于main(int argc,char *argv[])的编程 所以探究探究main()函数的参数 探究程序如下: #include <cstdio&g ...
- asp.net mvc 生成条形码
using System; using System.Collections; using System.Collections.Generic; using System.Drawing; usin ...
- Spring-----事务配置的五种方式
转载自:http://blog.csdn.net/hekewangzi/article/details/51712821
- jquery ajax后台向前台传list 前台用jquery $.each遍历list
$.ajax({ type: 'post', url: xxx.action', dataType: 'text', success: function(data){ var dataObj=eval ...
- javascript 数据结构和算法读书笔记 > 第一章 javascript的编程环境和模型
1.变量的声明和初始化 必须使用关键字 var,后跟变量名,后面还可以跟一个赋值表达式. var name; var age = 5; var str = 'hello'; var flg = fal ...
- jquery与ajax的应用
1.编写第一个Ajax的例子,先来看一下传统的JavaScript实现的ajax例子. 首先在前台页面中书写HTML代码. <input type="button" valu ...
- Apache Spark2.0正式发布
Apache Spark2.0正式发布 7月26日起Databricks开始提供Apache Spark 2.0的下载,这个版本是基于社区在过去两年的经验总结而成,不但加入了用户喜爱的功能,也修复了之 ...