• 加密,解密Web.Config


    加密:

    在命令提示符下键入:

    aspnet_regiis -pef connectionStrings 要加密的web.config完整路经

    解密:

     在命令提示符下键入:

    aspnet_regiis -pdf connectionStrings 要解密的web.config完整路经

     

    D:\Program Files\Microsoft Visual Studio 9.0\VC>aspnet_regiis -pdf connectionStrings c:\
    正在解密配置节...
    成功!

    D:\Program Files\Microsoft Visual Studio 9.0\VC>aspnet_regiis -pef connectionStrings c:\
    正在加密配置节...
    成功!

    D:\Program Files\Microsoft Visual Studio 9.0\VC>

    aspnet_regiis.exe -pef connectionStrings C:\ -prov "DataProtectionConfigurationProvider"

    使用“DataProtectionConfigurationProvider”方式加密

     
    aspnet_regiis.exe -pe "connectionStrings" -app "/SampleApplication" -prov "TripleDESProvider"

    使用“TripleDESProvider”方式加密

     
     一、aspnet_regiis.exe加解密

    使用ASPNET_REGIIS命令对web.config加解密步骤如下:

    step1 切换到,NET Framework对应目录

    cd c:/windows/Microsoft.NET/Framework/v2.0. 50727

    step2 加密 connectionString区块

    aspnet_regiis -pe "connectionStrings" -app "VisualPath" -prov "RASProtectedConfigurationProvider"

    回车后,aspnet_regiis会去c:/Inetpub/wwwroot中寻找VisualPath网站目录中的web.config文件,进而加密connectionStrings区块。类似也可以加密aapSettings、mailSettings区块。

     

    -pe 加密的区块<connectionStrings/><aapSettings/><mailSettings/>
    -app web应用程序的虚拟目录
    -prov 何种加密方式的Provider

    step3 解密区块

    aspnet_regiis -pd "connectionStrings" -app "VisualPath"
    注:
    如果应用程序目录所在目录不在c:/Inetpub/wwwroot路径下,而是自定义的路径,无论如何下达aspnet_regiis指令,都会因为路径错,无法顺利加密成功。

    二、Configuration API 加解密

    Configuration类(System.Configuration.Configuration)
    WebConfigurationManager类(System.Web.Configuration.WebConfigurationManager)

    step1 获取当前应用程序路径

    String appPath=this.Request.ApplicationPath;

    step2 打开该路径的应用程序的web.config

    Configuration config=WebConfigurationManager.OpenWebConfiguration(appPath);

    step3 获取<connectionStrings>区块

    ConnetionStringsSection connectionStrings=config.ConnectionStrings;

    step4 加密Provider

    (1)DPAPIProtectedConfigurationProvider
    Windows Data Protection API ,加密字符串"DataProtectedConfigurationProvider"
    (2)RSAProtectedConfigurationProvider
    使用RSA算法加解密 ,加密字符串"RSAProtectedConfigurationProvider"

    Configuration myConfiguration =null;
    ConfigurationSection myConnetionStrings 
    =null;

    myConfiguration
    =WebconfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
    appSettings
    =myConfiguration.GetSection("connectionStrings");

    if(!myConnetionStrings.SectionInformation.IsProtected)
    {
        myConnetionStrings.SectionInformation.ProtectSection(
    "DataProtectionConfigurationProvider");

        
    //myConnetionStrings.SectionInformation.ProtectSection("RSAConfigurationProvider");
        myConfiguration.Save();
    }
    解密
    myConnetionStrings.SectionInformation.UnprotectSection();
    myConfiguration.Save();
  • 相关阅读:
    Ubuntu: Set socks5 proxy for git
    Tornado实现一个消息墙。
    android 5.0开启google now 【需ROOT】
    python 回调函数
    php开发bug
    复习
    关于 xshell
    前端页面
    yii框架对数据库查询访问处理
    前端笔记
  • 原文地址:https://www.cnblogs.com/amylis_chen/p/2613814.html
Copyright © 2020-2023  润新知