• ASP.net HTTP/HTTPS自动切换 天高地厚


    一、背景资料

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

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

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

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

      二、解决方案1、原理

      实现IHttpModule接口

      2、效果预览

      HTTP页面

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

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

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

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

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

      三、源码分析

      使用第三方程序集 WebPageSecurity.dll

      四、使用方式1、添加程序集到Bin文件夹

      添加程序集WebPageSecurity.dll到Bin文件夹

      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加密(如上配置节)。

      ?   添加Module到Application

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

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

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

      BasePage.cs代码如下

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

      查看原图(大图)

      五、总结

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

    不登高山,怎知天高;不临深溪,焉知地厚!站在坚实的土地上,做着生命中最真实的事情;像一棵挺拔的大树,认可自己的命运并敢于迎接属于这一方天空的风风雨雨。

  • 相关阅读:
    SL复习笔记之平稳转型——基础篇(二、控件和数据访问)
    UML之用例图和类图
    SL复习笔记之平稳转型——基础篇(四、多媒体,工具提示和右键菜单)
    SL复习笔记之平稳转型——基础篇(一)
    SL复习笔记之平稳转型——基础篇(三、SL安装检测和用“刷子”刷出背景)
    平稳转型WP系列之在Windows Phone中谈“委托”、“事件”和“接口”(一、深入理解)
    UML建模之活动图和StarUML使用
    SL复习笔记之平稳转型——基础篇(五、数据绑定)
    使用html parser
    设计模式工厂模式
  • 原文地址:https://www.cnblogs.com/net2012/p/2823444.html
Copyright © 2020-2023  润新知