繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> ASP.NET1.1和2.0下进行https请求的不同实现

ASP.NET1.1和2.0下进行https请求的不同实现

2006-11-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:今天做项目中进行https请求时遇到这样的调试错误,内部错误:未能为 SSL/TLS 安全通道建立信任关系。错误页面:根据验证过程,远程证书无效。经过分析,在浏览器中打开要进行一个安全确认。就是这个对话框引起的问...
关键字:不同 https NET 2.0 1.1 ASP

今天做项目中进行https请求时遇到这样的调试错误,内部错误:未能为 SSL/TLS 安全通道建立信任关系。错误页面:根据验证过程,远程证书无效。经过分析,在浏览器中打开要进行一个安全确认。就是这个对话框引起的问题。在网上搜了一下一般的解决办法,但是搜的内容比较少,现在在这里总结一下。

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Net;

using System.IO;

using System.Text;

using System.Net.Security;

using System.Security.Authentication;

using System.Security.Cryptography.X509Certificates;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

//for 1.1 在2.0下ServicePointManager.CertificatePolicy已经过时

//ServicePointManager.CertificatePolicy = new AcceptAllCertificatePolicy();

//for 2.0

//ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://someurl");

request.Method = "GET";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream receiveStream = response.GetResponseStream();

StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);

Page.Response.Write(readStream.ReadToEnd());

response.Close();

readStream.Close();

}

//for 2.0

public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

{ // Always accept

return true;

}

//for 1.1

internal class AcceptAllCertificatePolicy : ICertificatePolicy

{

public AcceptAllCertificatePolicy()

{

}

public bool CheckValidationResult(ServicePoint sPoint, System.Security.Cryptography.X509Certificates.X509Certificate cert, WebRequest wRequest, int certProb)

{

// Always accept

return true;

}

}

}

责任编辑:admin
相关文章