博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
https页面与Http页面自动切换-SSL解决方案[转]
阅读量:7030 次
发布时间:2019-06-28

本文共 1791 字,大约阅读时间需要 5 分钟。

出处:


 

 

一、背景资料

安全套接层协议(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页面的时候,此解决方案可供选择。

源代码下载:

原文地址:

 

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/archive/2009/11/30/1613516.html
你可能感兴趣的文章
代码管理(四)SVN和Git对比
查看>>
python - hadoop,mapreduce demo
查看>>
mongodb常见管理命令
查看>>
1.7 以函数对象取代函数
查看>>
Vue过渡效果之JS过渡
查看>>
Android项目实战(三):实现第一次进入软件的引导页
查看>>
Web Service基础——基础概念
查看>>
Linux2.4文件系统中vfsmount、安装点的dentry、设备的dentry之间的关系【转】
查看>>
POJ 1201 Intervals
查看>>
JAVA訪问URL
查看>>
APP接口基础学习一
查看>>
设计模式 策略模式 以角色游戏为背景
查看>>
【转】CSS和SVG中的剪切——clip-path属性和<clipPath>元素
查看>>
【C语言入门教程】5.4 递归
查看>>
UVALive 6915 Leveling Ground 倍增RMQ
查看>>
Inside ARC — to see the code inserted by the compiler
查看>>
云中气象 有备而来
查看>>
4.dubbo-demo+简易监控中心安装+管理控制台安装
查看>>
读书笔记《集体智慧编程》Chapter 4 : Searching and Ranking
查看>>
jquery form 插件 分类: JavaScript ...
查看>>