• asp.net部署时加密config文件


          1:运行cmd,并定位到C:WINDOWSMicrosoft.NETFrameworkv2.0.50727(可以直接运行vs2005的命令提示工具,但是貌似vs2010默认指向的framework3.5里没有aspnet_regiis命令,为了避免有些人找不到,所以还是直接cmd比较好。)

          2:运行

    1 aspnet_regiis -pef "appSettings" "D:demo"   //显示"正在加密配置节,成功!"

              这里要注意一下,D:demo是工程的路径,可以是绝对路径,也可以是网站的相对路径,具体方法可以参考aspnet_regiis的帮助。如果你把web.config放在d盘根目录下,那么路径就是"D:\"。appSettings是要加密的节点名称,也可以针对某个节点的子节点进行加密,例如

    1 aspnet_regiis -pef "system.web/authentication" "D:demo"

          加密完成后,除了视觉上变为复杂的字符串之外,使用上与加密前是完全相同的。解密时运行参数-pdf,例如:

    1 aspnet_regiis -pdf "appSettings" "D:demo"  //显示"正在解密配置节,成功!"
    

         

          经过加密的字符串,虽然可以在本机使用,但是在另外一台电脑上(客户现场或服务器)是无法直接使用的。需要进行一些配置。

          1:创建秘钥容器(pc-操作容器 -exp,可导出)

    1 aspnet_regiis -pc "MyKey" -exp

          2:导出容器中的秘钥到xml中(px操作容器文件,注意D:\后面有一个空格,否则你找不到文件的  ^ ^)

    1 aspnet_regiis -px "MyKey" "D:\ keys.xml" -pri

          3:拷贝你的keys.xml文件到服务器上,并且导入秘钥。(-pi导入容器里的秘钥)

    1 aspnet_regiis -pi "MyKey" “D:keys.xml”

          4:赋权限(ASPNET权限)

    1 aspnet_regiis -pa "MyKey" "ASPNET"

          5:修改web.config文件,增加:

    复制代码
    1  <configuration>
    2  <configProtectData defaultProvider="MyProtectedConfigurationProvider">
    3  <providers>
    4  <add name="MyProtectedConfigurationProvider" type="System.Configuration.RsaProtectedConfigurationProvider" cspProviderName="" useMachineContainer="true" useOAEP="false" keyContainerName="SharedKeys"/>
    5  </providers>
    6  </configProtectedData>
    7  </configuration>
    复制代码

          完成!

         6,FQ

     如果出现加密成功后,网站还是不起来,查看系统日志报如下错误:

     未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误信息为: 打不开 RSA 密钥容器。
     这样的错误,解决方法是:

     首先确保NETWORK SERVICE有权限完全控制网站所在目录。


     进dos运行:aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITYNETWORK SERVICE"
      如果运行出错,需要把目录 C:WINDOWSMicrosoft.NETFrameworkv2.0.50727 放入环境变量path中。
      此时就可以成功访问网站了。
      同样可以通过命令行来实现“RSAProtectedConfigurationProvider”加密

  • 相关阅读:
    窗体1打开窗体2的方法
    C#中窗体间传递数据的几种方法(转载)
    只读字段和常量
    Datepicker控件
    .NET中的加密和解密
    ASP.NET网页生命周期事件
    hdu 1394 Minimum Inversion Number(逆序数对) : 树状数组 O(nlogn)
    我的第一次博客
    弹性布局
    HTML标签部分(块级/行级)
  • 原文地址:https://www.cnblogs.com/wusong/p/3750185.html
Copyright © 2020-2023  润新知