• https页面与Http页面自动切换SSL解决方案


    一、背景资料

    二、解决方案

    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="RemoteOnly" ignoreHandlers="WithStandardExtensions">

           <files>

               <add path="Login.aspx" />

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

               <add path="Legal/Copyright.aspx" secure="Ignore" />

           </files>

           <directories>

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

               <add path="Admin" recurse="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页面的时候,此解决方案可供选择。

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

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

  • 相关阅读:
    (转)使用Nios II 9.1 SP1 SBTE的Flash Programmer的几点注意事项
    [转]linux mysql 更改MySQL数据库目录位置
    2009年第二天被小偷光顾
    [转]几乎没人能逃过的定向思维,我做过了,几乎全对,最后想的是苹果、鼻子跟鸭子
    QQ群里一段推理(恶搞)
    [转]Visio虚线复制到word中变为实线问题的解决办法
    [转]Vmware中提供的与网络通讯的三种网络模式的讲解
    [转]Word 2007书籍排版完全手册
    好好造句
    地产忽悠大全
  • 原文地址:https://www.cnblogs.com/ywqu/p/1612589.html
Copyright © 2020-2023  润新知