輕松加密ASP.NET 2.0 Web程序配置信息
2006/12/25 23:42:18

  另外,存在一些你不能使用這個技術加密的配置部分:

  · <processModel>
  · <runtime>
  · <mscorlib>
  · <startup>
  · <system.runtime.remoting>
  · <configProtectedData>
  · <satelliteassemblies>
  · <cryptographySettings>
  · <cryptoNameMapping>
  · <cryptoClasses>

  為了加密這些配置部分,你必須加密這些值并把它存儲在注冊表中。存在一個aspnet_setreg.exe命令行工具可以幫助你實現這一過程;我們將在本文后面討論這個工具。

  【提示】Web.Config和Machine.Config之區別:

  Web.config文件指定針對一個特定的web應用程序的配置設置,并且位于應用程序的根目錄下;而machine.config文件指定所有的位于該web服務器上的站點的配置設置,并且位于$WINDOWSDIR$\Microsoft.Net\Framework\Version\CONFIG目錄下。

四、加密選項

  開發人員可以使用ASP.NET 2.0提供程序模型來保護配置節信息,這允許任何實現都可以被無縫地插入到該API中。.NET框架2.0中提供了兩個內置的提供程序用于保護配置節信息:

  · Windows數據保護API(DPAPI)提供程序(DataProtectionConfigurationProvider):這個提供程序使用Windows內置的密碼學技術來加解密配置節。默認情況下,這個提供程序使用本機的密鑰。你還能夠使用用戶密鑰,但是這要求進行一點定制。

  · RSA保護的配置提供程序(RSAProtectedConfigurationProvider):使用RSA公鑰加密來加解密配置節。使用這個提供程序,你需要創建存儲用于加解密配置信息的公鑰和私鑰的密鑰容器。你能夠在一個多服務器場所下使用RSA,這只要創建可輸出的密鑰容器即可。
當然,如果需要的話,你還能夠創建自己的保護設置提供程序。

  在本文中,我們僅討論使用DPAPI提供程序使用機器級密鑰。到目前為止,這是最簡單的方法,因為它不請求創建任何密鑰或密鑰容器。當然,其消極的一面在于:一個加密的配置文件僅能夠用于首先實現加密的web服務器上;而且,使用機器密鑰將允許加密的文本能夠被web服務器上的任何網站所解密。

  五、以編程方式加密配置部分

  System.Configuration.SectionInformation類對一個配置節的描述進行了抽象。為了加密一個配置節,只需要簡單地使用SectionInformation類的ProtectSection(提供程序)方法,傳遞你想使用的提供程序的名字來執行加密。為了存取你的應用程序的Web.config文件中的一個特定的配置節,你可以使用WebConfigurationManager類(在System.Web.Configuration命名空間中)來引用你的Web.config文件,然后使用它的GetSection(sectionName)方法返回一個ConfigurationSection實例。最后,你可以經由ConfigurationSection實例的SectionInformation屬性得到一個SectionInformation對象。

  下面,我們通過一個簡單的代碼示例來說明問題:

    privatevoid ProtectSection(string sectionName, string provider)
{
 Configuration config = WebConfigurationManager.
 OpenWebConfiguration(Request.ApplicationPath);
 ConfigurationSection section = config.GetSection(sectionName);
 if (section != null &&!section.SectionInformation.IsProtected)
 {
  section.SectionInformation.ProtectSection(provider);
  config.Save();
 }
}
private void UnProtectSection(string sectionName) {
 Configuration config =WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
 ConfigurationSection section = config.GetSectio n(sectionName);
 if (section != null && section.SectionInformation.IsProtected)
 {
  section.Sectio

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 欧美另类69xxxxxhd| 久久久久亚洲精品中文字幕| 伊人一伊人色综合网| 日韩成人在线免费视频| 亚洲视频在线观看视频| 欧美色图在线播放| 在线观看片免费人成视频播放 | 看免费的黄色片| 国产精品亚洲专区无码唯爱网| japanese日本熟妇多毛| 极品色αv影院| 午夜天堂精品久久久久| 青青草国产免费久久久91| 国产精品久久亚洲一区二区| 999福利视频| 无码少妇一区二区三区芒果| 亚洲精品国产国语| 青青草原亚洲视频| 国产福利vr专区精品| 一本色道久久88加勒比—综合| 欧美亚洲天堂网| 亚洲精品成人网站在线观看 | 国外欧美一区另类中文字幕| xxxx性视频| 日韩视频中文字幕精品偷拍| 健身私教弄了我好几次怎么办| 992tv国产人成在线观看| 国产精品美女一区二区| 两个人看的www免费| 日本无卡无吗在线| 亚洲精品国产首次亮相| 穿长筒袜的有夫之妇hd中文| 国产成人啪精品视频免费网 | 日韩激情淫片免费看| 亚洲丶国产丶欧美一区二区三区| 精品欧美一区二区精品久久| 国产丰满麻豆videossexhd| 87午夜伦伦电影理论片| 成年女人18级毛片毛片免费| 亚洲人成网男女大片在线播放| 正在播放西川ゆい在线|