当前位置:主页   - 电脑 - 网站开发 - ASP.Net
NBearV3教程——实体配置文件加密篇
来源:网络   作者:   更新时间:2012-08-16
收藏此页】    【字号    】    【打印】    【关闭

  版本

  1.0 [2006-11-18]

  简介

  本教程介绍NBearV3中的实体配置文件的加密支持。

  目标

  通过本教程,读者应能够全面掌握加密实体配置文件和如何结合使用ASP.NET的配置节加密功能,实现部署环境关联的实体配置加密。

  代码

  本教程不包含任何演示代码。

  时间

  <10分钟。

  正文

  1 配置及启用实体配置文件加密

  要启用实体配置文件加密,需要如下设置entityConfig配置节:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
  <section name="entityConfig" type="NBear.Common.EntityConfigurationSection, NBear.Common" />
</configSections>
<entityConfig encrpyt="false" key="aslkjkljlsajsuaggasfklrjuisdhaie">
  <includes>
   <add key="Sample" value="C:TeddyNBearV3srcNBear.Test.CaseTestsEntityConfig.xml" />
  </includes>
</entityConfig>
<connectionStrings>
  <add name="CaseTests" connectionString="Server=(local);Database=CaseTests;Uid=sa;Pwd=sa" providerName="NBear.Data.SqlServer.SqlDbProvider"/>
</connectionStrings>
</configuration>

  注意以上代码中,

  entityConfig配置节加粗的两个属性:encrypt和key。

  encrypt=true代表,启用实体配置文件加密。

  key则指定了一个用于加密/解密实体配置文件的key。

  如果启用了实体配置文件加密功能,则当前应用程序,将只能识别经过加密的实体配置文件。

  2加密/解密实体配置文件

  要加密/解密实体配置文件,需要使用dist目录中的NBear.Tools.ConfigurationEncrypter.exe工具。这是一个Windows Form程序,它的使用非常简单,就是载入一个配置文件,指定加密key,并加密/解密这个配置文件。

  3 使用ASP.NET的配置节加密工具实现部署环境关联的配置节加密

  ASP.NET提供了config文件的加密功能,例如,使用下面的命令行语句可以将IIS中的指定应用程序的Web.config的entityConfig配置节加密:

  aspnet_regiis -pe "entityConfig" -app "/应用程序的名字"

  下面的语句则是对应的解密命令:

  aspnet_regiis –pd "entityConfig" -app "/应用程序的名字"

  注1:您可以在命令行环境执行aspnet_regiis /help查看aspnet_regiis的更多选项。aspnet_regiis.exe工具一般在[windir] Microsoft.NETFrameworkv2.0.50727目录下。

  注2:您可能需要将distNBear.Common.dll文件复制到aspnet_regiis.exe所在的目录,否则,加密/解密配置节的过程中可能会报不能加载NBear.Common.dll错误。

  您可能会问,使用如上命令加密Web应用程序的配置文件有什么作用呢?

  一旦使用aspnet_regiis加密配置节,则该配置文件中被加密的配置节的内容会使用加密后的数据代替,这些加密数据,只在执行aspnet_regiis的这台服务器上能够被识别。也就是说,即使完整复制该应用程序到另一台服务器,也不能运行该程序,因为配置文件将不能正确识别。aspnet_regiis同时包含了更多其它加密选项,可以更灵活的控制配置节的加密过程。不过,这就是 ASP.NET的SDK文档讨论的范畴了,这里仅仅给出常用的方法,不做更多讨论。

  //正文结束

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明