ASP.NET 2.0数据教程之七十三:保护连接字符串及其它设置信息
ctionStrings>节点 进行加密.对RSA provider以及用户级密匙的更多信息请参考本文结束部分的外延 阅读资料.
注意: RSAProtectedConfigurationProvider 和DPAPIProtectedConfigurationProvider providers在machine.config文件里被分别组册成RsaProtectedConfigurationProvider 和DataProtectionConfigurationProvider。当我们对配置信息进行加密或解密时我们需要提供相应的provider名称(即RsaProtectedConfigurationProvider 或 DataProtectionConfigurationProvider);而不是实际的类型名(即RSAProtectedConfigurationProvider 和 DPAPIProtectedConfigurationProvider). 你可以在$WINDOWS$\Microsoft.NET\Framework\version\CONFIG文件夹里找到machine.config文件. 第二步:通过编程加密和解密配置节点 使用某个provider, 我们只需要很少的几行代码就可以对某个配置节点加密或解密.这些代码仅仅需要 引用相应的配置节点,调用其ProtectSection 或 UnprotectSection方法,再调 用Save方法来执行.另外,.NET Framework包含了一个很有用的命令行功能来进行 加密和解密,我们将在第3步考察该功能. 为了便于演示,我们需要创建一 个包含按钮的ASP.NET页面,以便于对Web.config文件的 <connectionStrings>节点进行加密和解密. 打开AdvancedDAL文件 夹里的EncryptingConfigSections.aspx页面,拖一个TextBox控件到页面,设其 ID为WebConfigContents;TextMode属性为MultiLine;Width和Rows属性分别为 95% 和 15.该TextBox控件用于显示Web.config文件的内容,以查看其内容是否已 经加密了.当然,在现实程序里,我们不可能将Web.config文件的内容显示出 来. 在该TextBox控件下面添加2个Button控件,ID分别为 EncryptConnStrings 和 DecryptConnStrings;设其Text属性为“Encrypt Connection Strings” 和 “Decrypt Connection Strings”. 此时你的界面看起来和下面的差不多: 图2:在页面上添加一个TextBox控件和2个Button控件 接下来, 在页面初次登录时我们需要在ID为WebConfigContents的TextBox控件里将 Web.config文件的内容显示出来。在页面的后台类里添加如下的代码,该代码添 加了一个名为DisplayWebConfig的方法,在Page_Load事件处理器里,当 Page.IsPostBack 为 false时便调用该方法:
该DisplayWebConfig方法调用File class类来打开应用程序的Web.config文件;调用StreamReader class类将内容读 入一个字符串;再调用Path class类来获取Web.config文件的物理地址.这3个类 都位于System.IO命名空间. 所以我们应该在后台类的顶部添加using System.IO 声明,又或者在这些类的前面添加“System.IO.”前缀. 接下 来,我们需要为这2个按钮的Click事件添加事件处理器,在一个DPAPI provider 里使用机器级密匙对<connectionStrings>节点进行加密和解密.在设计器 里,双击这2个按钮以添加Click事件处理器,添加如下代码:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |