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. huffman 编码

    huffman压缩是一种压缩算法,其中经典的部分就是根据字符出现的频率建立huffman树,然后根据huffman树的构建结果标示每个字符.huffman编码也称为前缀编码,就是每个字符的表示形式不是 ...

  2. HTML 基础 2

    1. 认识CSS样式: CSS:层叠样式表(Cascading Style Sheets),主要用于定义HTML内容在浏览器内的显示样式 语法: 选择符{ 属性: 值} 举例: p{ color: b ...

  3. JS(移动端)自己封装移动端一些常用方法

    /** * Created by Administrator on 2016/7/14. */ /*命名空间*/ window.lcf = {}; /*监听过渡结束的方法*/ lcf.transiti ...

  4. discuz二次开发笔记(二)------跳转函数运用

    前几天在增加修改功能时,突然用到一个提示函数,有点不理解,看了他的由来后果断做下笔记,感觉这在以后的开发中肯定还是要用的上的.有些地方不是很理解,在以后慢慢纠正.查补. Htm页面中用的js跳转: $ ...

  5. 使用md5判断网站内容是否被篡改

    该脚本比较简单,判断网站根目录是否被篡改,如果被篡改把篡改的文件发送到管理员邮箱 #!/bin/bash #author:luodi date:// #use md5 to check web sit ...

  6. Android dialog 不消失

    最近在做Android4.0的开发,发现AlertDialog相比较以前有了较大变化,就是在触摸对话框边缘外部,对话框消失 于是研究其父类发现,可以设置这么一条属性,当然必须先AlertDialog. ...

  7. [solaris]odbc-oracle,简单测试

    #include <string> #include <iostream> #include <stdio.h> #include <sql.h> #i ...

  8. Python作业day2购物车

    流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现),查询余额. 撸了两天一夜的代码,不多说,直接上码,注释神马的后面再说 #!/usr/bin/env python # -*- co ...

  9. flex lineChart中自定义datatip

    原文 http://www.giser.net/?p=776 在Flex4中使用lineChart会遇到一个bug,datatip上的背景是黑色的,造成文字看不清楚,和整体界面不协调. 那么解决这个问 ...

  10. android:TextAppearance.Material.Widget.Button.Inverse问题

    如果在刚够构建Android Studio项目的时候,运行发现,出现没找到资源的错误!找不到com.android.support/appcompat-v7/23.0.1/res/values-v23 ...