zoukankan      html  css  js  c++  java
  • Enterprise Library 2.0 Hands On Lab 翻译(3):数据访问程序块(三)

    练习3:加密数据库连接信息

    通过该练习,你将学会如何去加密数据库连接信息。

     

    第一步

    打开DataEx3.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex03\begin,并编译。

     

    第二步 加密数据库连接字符串

    1.在Enterprise Library1.1中加密连接字符串,需要依赖于Cryptography Application Block.NET Framework2.0中已经内置了这项功能,通过Configuration命名空间下的一些类来完成,支持两种类型的加密:

    DPAPIProtectedConfigurationProvider:使用Windows Data Protection API (DPAPI)

    RsaProtectedConfigurationProvider:使用RSA算法

    2.选择ProductMaintenance项目,选择Project | Add Reference …菜单命令,在弹出的对话框中选择.NET页并添加如下程序集。

    System.Configuration.dll

    3.在解决方案管理器中选择Program.cs文件,选择View | Code菜单命令,加入如下命名空间。

    using System.Configuration;

    4.在方法ProtectConfiguration中添加如下代码。

    static void ProtectConfiguration()

    {

        
    // TODO: Protect the Connection Strings

        
    string provider = "RsaProtectedConfigurationProvider";

     

        Configuration config 
    = null;

        config 
    = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

     

        ConfigurationSection section 
    = config.ConnectionStrings;

     

        
    if ((section.SectionInformation.IsProtected == false&&

            (section.ElementInformation.IsLocked 
    == false))

        
    {

            
    // Protect (encrypt) the "connectionStrings" section.

            section.SectionInformation.ProtectSection(provider);

     

            
    // Save the encrypted section.

            section.SectionInformation.ForceSave 
    = true;

            config.Save(ConfigurationSaveMode.Full);

        }


    }

     

    第三步 运行应用程序

    选择Debug | Start Without Debugging菜单命令并运行应用程序,注意该示例和练习2中的示例是一样的。在项目bin\Debug目录中打开ProductMaintenance.exe.config配置文件,注意到连接信息已经变成了密文。

    <?xml version="1.0" encoding="utf-8"?>

    <configuration>

      
    <configSections>

        
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />

      
    </configSections>

      
    <dataConfiguration defaultDatabase="QuickStarts Instance" />

      
    <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">

        
    <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"

          xmlns
    ="http://www.w3.org/2001/04/xmlenc#">

          
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />

          
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">

            
    <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">

              
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />

              
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">

                
    <KeyName>Rsa Key</KeyName>

              
    </KeyInfo>

              
    <CipherData>

                
    <CipherValue>xeuEp2HB0xd87DFM0p5UwO78QjRW6A/pb6kGJpS5Rl0F0jHAEPh8wz4Jroc1+/I7nvmsCo6a8wzju4Nyd5ZGF6KRZgx56P9wRgkUFtJPgDROrz1ASRSIrOfMjw4+1uedT+pl+IuF1EWgEH9Vb+/8A9xmbYWtMBAcR/f/quSC1nQ=</CipherValue>

              
    </CipherData>

            
    </EncryptedKey>

          
    </KeyInfo>

          
    <CipherData>

            
    <CipherValue>DrwCnj8uCmkWOjLc2waTGX2pf8QKRFpegQbFv0zcVAwcCkZRvUVnIj9kXCLiIx+Pcbrz6H/fccbWxybAA+V7A4unJvDXegyZR1+dW7UqfDOAagTW67FC6iI3vatOpGCw30W+xpwhfgptCoFRNiCMWqxvpv++pywSK5SNfB7UZwpl90Q9dBHmmCIVyi/ZbS5JY2FLN68nRd9CHZmZLHv9opBm4DvMVdAXt7oKQ6tk9k4HJZzpUc1V8pWLQn7NQroA/4WpUDGGgk1gJ2HTBkP2L6wATzxTfQDgZbW/JIgrdollAQbO3/UEAvAnc0swoL/6BhWS5MW/9PxjuQK6GhsnSr4Dg7SEdsFPO2bTsAP/lAUeY5y9M3UxC1Q32IwMt8O4gz5ppNgYY7R8yKmvH7/S80/i61qJXvSJEQ/hQjx8V2R9okuBaN4XVgLUysmFWsOwxxHiGFyuSOECDWnr1c/5XwM7O85gVTzMELdM+N1jVFQTADXQmckOY1nZllRd3cA9CB1Qruqn/RxbGOFHT1F6y/4Cbfk7x1CKsmHx0iI0WNJ5iD3KYEq5kosGwWxrOI8C28BiXfEztwCzruSP6JpMbw==</CipherValue>

          
    </CipherData>

        
    </EncryptedData>

      
    </connectionStrings>

    </configuration>


    注意根据Hands On Lab给出的时间建议,做完以上三个练习的时间应该为30分钟。

    更多Enterprise Library的文章请参考《Enterprise Library系列文章
  • 相关阅读:
    分享一个文件的工具类
    关于itext生成pdf的新的demo(包含简单的提取txt文件的内容 和xml内容转化为pdf)
    全文检索的Demo
    dom4j操作xml的demo
    利用Java获取ip地址
    利用htmlparser读取html文档的内容
    关于pdfbox操作pdf的分享链接手长
    poi读取word的内容
    基于NPOI对Excel进行简单的操作
    “尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。”
  • 原文地址:https://www.cnblogs.com/Terrylee/p/Data_Access_Application_Block_HandsOnLab_Part3.html
Copyright © 2011-2022 走看看