版本
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:\Teddy\NBearV3\src\NBear.Test.CaseTests\EntityConfig.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.NET\Framework\v2.0.50727\目錄下。
注2:您可能需要將dist\NBear.Common.dll文件復制到aspnet_regiis.exe所在的目錄,否則,加密/解密配置節的過程中可能會報不能加載NBear.Common.dll錯誤。
您可能會問,使用如上命令加密Web應用程序的配置文件有什麼作用呢?
一旦使用aspnet_regiis加密配置節,則該配置文件中被加密的配置節的內容會使用加密後的數據代替,這些加密數據,只在執行aspnet_regiis的這台服務器上能夠被識別。也就是說,即使完整復制該應用程序到另一台服務器,也不能運行該程序,因為配置文件將不能正確識別。aspnet_regiis同時包含了更多其它加密選項,可以更靈活的控制配置節的加密過程。不過,這就是 ASP.NET的SDK文檔討論的范疇了,這裡僅僅給出常用的方法,不做更多討論。
//正文結束