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: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/archive/2009/11/30/1613516.html
相关文章
|
1月前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
41 0
一起深入了解http和https的区别
|
1月前
|
安全 网络协议 算法
http和https的区别有哪些
http和https的区别有哪些
|
7天前
|
网络协议 网络安全 数据安全/隐私保护
http和https的区别!
http和https的区别!
|
1月前
|
缓存 安全 网络协议
http和https的区别是什么? (2)
http和https的区别是什么? (2)
17 1
|
1月前
|
存储 Java 关系型数据库
http和https的区别是什么? (1)
http和https的区别是什么? (1)
39 1
|
3月前
|
存储 安全 网络安全
HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较
HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较
159 0
|
3月前
|
安全 网络协议 API
探析HTTP 和 HTTPS:你需要知道的区别
网络安全问题正变得日益重要,而 HTTP 与 HTTPS 对用户数据的保护十分关键。本文将深入探讨这两种协议的特点、工作原理,以及保证数据安全的 HTTPS 为何变得至关重要。
|
4月前
|
安全 网络协议 网络安全
HTTP和HTTPS的区别?
HTTP和HTTPS的区别?
34 0
|
4月前
|
安全 前端开发 搜索推荐
前端知识笔记(六)———HTTP和HTTPS有什么区别?
前端知识笔记(六)———HTTP和HTTPS有什么区别?
63 0