网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.UNIX时间戳与.net日期类的转换 .
..Net新手学堂:Lambda表达式的一.
.Asp.net动态生成html页面.
.Asp.net前后台值的调用.
.ASP.NET超时设置.
.ASP.NET中将数据输出到Excel.
.使用HttpWebRequest向网站模拟上.
.大数量查询分页显示 微软的解决办.
.ASP.NET 2.0的视图状态持久性机制.
.在MasterPage中檢驗User是否登入.
.ASP.NET极限:页面导航 (翻译).
.在ASP.NET中防止注入攻击[翻译] .
.绑定Enum到ASP.NET数据绑定控件的.
.ASP.NET2.0瞎记-加密链接字符串.
.部署ASP.NET(包含.net framework.
.ASP.NET中数据校验部分的封装与应.
.AspNetForums的数据层概述.
.Asp.Net中NHiernate的Session的管.
.ConnectString中enlist设置的含义.
.Asp.Net使用POST方法最简单的实现.

1.1和2.0下进行https请求的不同实现

发表日期:2006-11-7


今天做项目中进行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;
        }
    }
}

http://www.cnblogs.com/david8k/archive/2006/11/06/551911.html

上一篇:编写高性能Web应用程序的10个入门技巧 人气:4674
下一篇:Login控件在UpdatePanel内当验证用户信息成功后出现页面刷新的解决办法 人气:4947
浏览全部asp.net的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐