如何在注册表中存储加密的连接字符串

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體:   |    |    |  超大  

目标本章的目标是:

返回页首适用范围本章适用于以下产品和技术:

返回页首如何使用本章内容若要学好本章内容:

返回页首摘要如果开发人员所编写的应用程序需要访问数据库,那么他们都将面临一个相同的问题,即在哪个位置安全存储数据库连接字符串。注册表为他们提供了一种选择。不过,尽管使用访问控制列表 (ACL) 可保护单个注册表项的安全,但为了提高安全性,您应该先对连接字符串加密,然后才将其存储。

本章介绍如何将经过加密的数据库连接字符串存储在注册表中,以及如何从 ASP.NET Web 应用程序中检索它。它会用到您在如何创建加密库中创建的那个常规加密库。

返回页首您必须了解的背景知识在开始学习本章之前,您应该知道:

返回页首将加密数据存储在注册表中此过程会创建一个 Windows 应用程序,用来为示例数据库字符串加密并将该字符串存储在注册表中。

1.

启动 Visual Studio .net,并创建一个新的名为 EncryptionTestApp 的 Visual C# 项目。

2.

添加对 Encryption.dll 程序集的引用。

要创建此程序集,必须执行本指南中如何创建加密库中所述的步骤。

3.

将下面的 using 语句添加到 Form1.cs 顶部现有 using 语句的下方。

4.

将表 1 中的控件加入 Form1,并如图 1 所示对它们进行排列。

表 1:EncryptionTestApp 控件

控件

文本

ID

图 1

“加密测试套”对话框

5.

将 txtConnectionString 的 Text 属性设置为

6.

将 txtKey 的 Text 属性设置为

7.

将 Form1 的 Text 属性设置为

8.

双击“加密”按钮以创建一个按钮单击事件处理程序,然后将以下代码添加到该事件处理程序中。

9.

在“设计器”模式下返回到 Form1,然后双击“解密”按钮以创建一个按钮单击事件处理程序。

10.

将下面的代码添加到“解密”按钮事件处理程序。

11.

在“设计器”模式下返回到 Form1,然后双击“写入注册表数据”按钮以创建一个按钮单击事件处理程序。

12.

将下面的代码添加到该事件处理程序中。

13.

运行该应用程序,然后单击“加密”。 在“加密字符串”字段中就会显示加密的连接字符串。

14.

单击“解密”。

在“解密字符串”字段中就会显示原始的字符串。

15.

单击“写入注册表数据”。

16.

在消息框中,单击“确定”。

17.

运行 regedit.exe 并查看以下注册表项的内容。

connectionString、initVector 和 key 命名值的当前值。

18.

关闭 regedit 和测试套应用程序。

返回页首创建 ASP.NET Web 应用程序此过程开发一个简单的 ASP.NET Web 应用程序,它将从注册表中检索加密的连接字符串并对它进行解密。

1.

创建一个名为 EncryptionWebApp 的新 Visual C# ASP.NET Web 应用程序。

2.

添加对 Encryption.dll 程序集的引用。

要创建此程序集,必须执行本指南中如何创建加密库中所述的步骤。

3.

打开 Webform1.aspx.cs,并将下面的 using 语句添加到文件顶部现有 using 语句的下面。

4.

将表 2 中所列的控件添加到 WebForm1.aspx 中。

表 2:WebForm1.aspx 控件

控件

文本

ID

5.

双击“获取连接字符串”按钮,创建一个按钮单击事件处理程序。

6.

将下面的代码添加到该事件处理程序中。

7.

在“生成”菜单上,单击“生成解决方案”。

8.

在解决方案资源管理器中右键单击 WebForm1.aspx,然后单击“在浏览器中查看”。

9.

单击“获取连接字符串”。

此时,在 Web 窗体上就会显示加密和解密的连接字符串。

返回页首其他资源有关详细信息,请参见本指南的如何创建加密库。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航