版本
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、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!