ASP.NET 2.0数据教程之七十三:保护连接字符串及其它设置信息
gs e) { // Get configuration information about Web.config Configuration config = WebConfigurationManager.OpenWebConfiguration (Request.ApplicationPath); // Let''s work with the <connectionStrings> section ConfigurationSection connectionStrings = config.GetSection ("connectionStrings"); if (connectionStrings != null) // Only encrypt the section if it is not already protected if (! connectionStrings.SectionInformation.IsProtected) { // Encrypt the <connectionStrings> section using the // DataProtectionConfigurationProvider provider connectionStrings.SectionInformation.ProtectSection( "DataProtectionConfigurationProvider"); config.Save(); // Refresh the Web.config display DisplayWebConfig(); } } protected void DecryptConnStrings_Click(object sender, EventArgs e) { // Get configuration information about Web.config Configuration config = WebConfigurationManager.OpenWebConfiguration (Request.ApplicationPath); // Let''s work with the <connectionStrings> section ConfigurationSection connectionStrings = config.GetSection ("connectionStrings"); if (connectionStrings != null) // Only decrypt the section if it is protected if (connectionStrings.SectionInformation.IsProtected) { // Decrypt the <connectionStrings> section connectionStrings.SectionInformation.UnprotectSection(); config.Save(); // Refresh the Web.config display DisplayWebConfig(); } } 这2个按钮的事件处理器的代码几乎是一样的.它们一开始都通过 WebConfigurationManager class类的OpenWebConfiguration方法获取当前应用程 序的Web.config文件的信息. 该方法根据指定的有效路径返回web配置文件。接下 来,再通过Configuration class类的GetSection(sectionName)方法访问 Web.config文件的<connectionStrings>节点.该方法返回一个 ConfigurationSection对象. 该ConfigurationSection对象包含了一个 SectionInformation属性,用来阐述加密节点的其它相关信息. 就像上面的代码 显示的那样,我们通过查看SectionInformation的IsProtected属性来判断是否对 配置节点进行了加密.此外,还可以通过SectionInformation的ProtectSection (provider) 和 UnprotectSection方法对节点进行加密或解 密. ProtectSection(provider)方法有一个字符串类型的输入参数,该参 数指定了用来加密的protected configuration provider的名称。在 EncryptConnString按钮的事件处理器里,我们将 “DataProtectionConfigurationProvider”传递给ProtectSection (provider)方法,因此指明了用到的是DPAPI provider.而UnprotectSection方法 可以确定加密时用到的provider,因此不需要任何的输入参数. 调用 ProtectSection(provider) 或 UnprotectSection方法后,我还必须调用 Configuration对象的Save method方法来进行具体的操作. 一旦完成加密或解密 并保存后,我们调用DisplayWebConfig方法将更新后的Web.config文件的内容上 传到TextBox控件. 键入上述代码后,在浏览器里测试 EncryptingCon |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |