ASP.Net连接WebServer使用Https协议(证书)
2013-11-06 17:50
429 查看
ASP.Net使用Https(证书)协议连接WebService
最近使用ASP.Net连接WebService,不过走的协议是Https的,我一般用的使用都是普通的http协议。所以刚开始有点不值从何下手,不过通过查阅资料,这条路是走通了,下面简单的记录一下使用方法。
这是网上的教程:
/article/6070528.html
WebService入门教程。
/content/3620547.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 安全通道建立信任关系"证书验证失败
/article/4703885.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连接WebService,不过走的协议是Https的,我一般用的使用都是普通的http协议。所以刚开始有点不值从何下手,不过通过查阅资料,这条路是走通了,下面简单的记录一下使用方法。
这是网上的教程:
/article/6070528.html
WebService入门教程。
/content/3620547.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 安全通道建立信任关系"证书验证失败
/article/4703885.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;
解决完这两个问题之后,其他的问题就迎刃而解了。
相关文章推荐
- Windows IIS ASP.NET Core中创建和使用HTTPS自签名证书
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- asp.net使用FtpWebRequest向ftp上传文件报错 基础连接已经关闭: 服务器提交了协议冲突
- asp.net 2.0 中使用web.config存储数据库连接字符串
- 使用SSH协议连接GitHub(对于一个版本库从https迁移到SSH)
- 我使用Asp.net MVC WebAPI支持OData协议进行分页操作的笔记(第二篇)
- ASP.NET中使用web.config配置web应用程序中的数据库连接
- 使用Asp.net 连接 SQL Server 2000 或 SQL Server 2005
- 使用asp.net与长连接技术制作网页聊天工具(初步)
- [导入]如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串
- ASP.Net MVC连接MySQL和Code First的使用
- windows server 证书的颁发与IIS证书的使用 Dapper入门使用,代替你的DbSQLhelper Asp.Net MVC中Action跳转(转载)
- 【翻译】使用ASP.NET序列化对象,基于http协议
- ASP.NET 中使用WebServer进行调试时,自定义的Identity出现 SerializationException的解决方法
- (WebSite----Asp.Net Configuration----->无法连接到SQL Server数据库------>选择数据存储区---->应用程序当前被配置为使用提供程序:AspNetSqlProvider)解决方案
- 在 ASP.NET MVC 中使用 HTTPS (SSL/TLS)
- Asp.Net连接ACCESS数据库相对路径问题,web.config中如何使用相对路径及在类文件中调用这个相对路径
- 在Android应用中使用自定义证书的HTTPS连接(下)
- windows2003下asp.Net站点无法使用用户名+密码的方式连接SQLSERVER的问题
- 用WINXP2+DW+ACCESS使用本地 ASP.NET 和 ASP 服务器时数据库连接失败