快速业务通道

ASP.NET 2.0数据教程之七十三:保护连接字符串及其它设置信息

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
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”.

此时你的界面看起来和下面的差不多:

ASP.NET 2.0数据教程之七十三:保护连接字符串及其它设置信息

图2:在页面上添加一个TextBox控件和2个Button控件

接下来, 在页面初次登录时我们需要在ID为WebConfigContents的TextBox控件里将 Web.config文件的内容显示出来。在页面的后台类里添加如下的代码,该代码添 加了一个名为DisplayWebConfig的方法,在Page_Load事件处理器里,当 Page.IsPostBack 为 false时便调用该方法:

protected void Page_Load(object sender, EventArgs e)
{
  // On the first page visit, call DisplayWebConfig method
  if (! Page.IsPostBack)
    DisplayWebConfig();
}

private void DisplayWebConfig()
{
  // Reads in the contents of Web.config and displays them in the TextBox
   StreamReader webConfigStream =
    File.OpenText(Path.Combine (Request.PhysicalApplicationPath, "Web.config"));
   string configContents = webConfigStream.ReadToEnd();
   webConfigStream.Close();

  WebConfigContents.Text = configContents;
}

该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事件处理器,添加如下代码:

protected void EncryptConnStrings_Click(object sender, EventAr

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号