https页面与Http页面自动切换-SSL解决方案[转]

简介:
出处: http://www.cnblogs.com/ywqu

一、背景资料

二、解决方案

1、原理

2、效果预览

三、源码分析

四、使用方式

1、添加程序集到Bin文件夹

2、配置Web.Config

五、总结

 

 

一、背景资料

安全套接层协议(SSLSecurity Socket Layer)基于WEB应用的安全协议,它包括:服务器认证、客户认证(可选)、SSL链路上的数据完整性和SSL链路上的数据保密性。SSL主要使用公开密钥体制和X.509数字证书技术保护信息传输的机密性和完整性,它不能保证信息的不可抵赖性,主要适用于点对点之间的信息传输,常用Web Server方式。

 

SSL安全协议主要提供三方面的服务:
    1 认证用户和服务器使得它们能够确信数据将被发送到正确的客户机和服务器上; 
    2 加密数据以隐藏被传送的数据;
    3 维护数据的完整性确保数据在传输过程中不被改变。 

 

对于电子商务应用来说,使用SSL可保证信息的真实性、完整性和保密性

电子商务网站中,有的页面需要SSL,有的页面不需要SSL,那我们如何能够自动快速在HTTPSHTTP之间切换呢?

二、解决方案

1、原理

       实现IHttpModule接口

2、效果预览

HTTP页面

 

点击Login.aspx超链接 自动跳转到Https页面,如下图

 

点击Contact.aspx链接 又自动切换为http页面,如下图

 

三、源码分析

使用第三方程序集 WebPageSecurity.dll

四、使用方式

1、添加程序集到Bin文件夹

添加程序集WebPageSecurity.dllBin文件夹

2、配置Web.Config

Ø         < configSections >节点下加入以下配置

 

<section name="secureWebPages"

 type="Ventaur.Web.Security.Configuration.SecureWebPageSettings, WebPageSecurity"/>

 

Ø         <configuration>节点下加入以下配置:

 

<secureWebPages mode="RemoteOnlyignoreHandlers="WithStandardExtensions">

       <files>

           <add path="Login.aspx" />

           <add path="Legal/Privacy.aspx" />

           <add path="Legal/Copyright.aspxsecure="Ignore" />

       </files>

       <directories>

           <!--<add path="/" recurse="True" />-->

           <add path="Adminrecurse="True" />

           <add path="Admin/Info/secure="Insecure" />

       </directories>

   </secureWebPages>

 

Ø        属性解释

 

mode

On (Default)

来自各个方向的请求使用SSL

RemoteOnly

来自于远程客户的请求使用SSL 网站部署到服务器上使用此属性

LocalOnly

本地调试时使用

Off

SSL不可用

 

<files>节点下的超链接 默认是使用SSL加密的。 也可对目录进行加密,也可对某一文件夹下的文件不使用SSL加密(如上配置节)。

 

Ø         添加ModuleApplication

 

<httpModules>节点下加入以下配置

<add name="WebPageSecurity"

 type="Ventaur.Web.Security.SecureWebPageModule, WebPageSecurity" />

     

Ø         新建基类BasePage.cs 让所有的aspx页面继承于BasePage

 

BasePage.cs代码如下

五、总结

       至此,无需在IIS上对每个页面进行配置,SSL加密页面与非SSL页面就可以自动转换了。特别是对于有大量SSL页面的时候,此解决方案可供选择。

源代码下载:http://files.cnblogs.com/ywqu/WebPageSecurity_v2_Demo_v31.rar

原文地址:http://www.codeproject.com/KB/aspnet/WebPageSecurity.aspx

 

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!














本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2009/11/30/1613516.html ,如需转载请自行联系原作者


相关文章
|
2月前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
45 0
一起深入了解http和https的区别
|
4天前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
|
4天前
|
网络协议 安全 算法
HTTP协议与HTTPS协议
HTTP协议与HTTPS协议
|
5天前
|
数据采集 缓存 网络协议
静态代理IP是否支持HTTP和HTTPS?
静态代理IP支持HTTP、HTTPS、FTP、Socks5等协议,HTTP协议因其简单、灵活而常用,通常比HTTPS速度快,因无需加密处理。HTTP代理比SOCKS5代理通常更快,因为HTTP专注于HTTP请求,而SOCKS5处理多种网络流量。静态HTTP代理适合浏览器和爬虫,SOCKS5代理支持更多协议,如TCP、UDP。选择取决于应用场景和需求。
|
9天前
|
安全 Go
解决https页面加载http资源报错
请注意,混合内容可能导致安全性问题,因此在使用上述方法时要小心。最好的方式是尽量减少或完全消除混合内容,以确保页面的安全性。
8 0
|
14天前
|
前端开发 应用服务中间件 网络安全
nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)
nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)
42 0
|
14天前
|
网络协议 网络安全 数据安全/隐私保护
http和https的区别!
http和https的区别!
|
15天前
|
安全 网络安全 数据安全/隐私保护
HTTP代理SSL连接:保障网络安全的重要协议
HTTP代理SSL连接:保障网络安全的重要协议
|
16天前
|
安全 网络协议 前端开发
< 了解 HTTP 这一篇就够了 :什么是 HTTP ?HTTP 和 HTTPS 有什么区别 ? >
在前端开发中,是和浏览器打交道最为频繁的行业之一。但是大部分卷王们,可能仅仅是知道如何使用浏览器,只是知道 URL 跳转到浏览器变成一个完整的网页。 本篇文章将讲述 什么是HTTP、 HTTP 和 HTTPS的区别 及 URL 是如何渲染到页面。 那么到这里,肯定会有人问: 那我们为什么要学习这个呢 ? 问得好,这个分为两方面: 一是学习上述内容,能够厚实我们的理论基础。有些内容,虽然用的不多,但是技多不压身,道理懂吧? 二是学习这个,对我们后续的性能优化、排查浏览器上某些错误 的能力都有提升!
< 了解 HTTP 这一篇就够了 :什么是 HTTP ?HTTP 和 HTTPS 有什么区别 ? >
|
17天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
11 0