快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
figSections.aspx页面,最开始你将看到页面将Web.config文件的 <connectionStrings>节点的内容以纯文本的形式展示出来.

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

图3:显示<connectionStrings>节点的内容

现在,点击 “Encrypt Connection Strings”按钮,如果“请求确认 ”(request validation)处于激活状态的话,回传页面时将抛出一个 HttpRequestValidationException异常,显示一个消息:“A potentially dangerous Request.Form value was detected from the client.”。这个 Request validation,在ASP.NET 2.0里默认为处于激活状态,禁止服务器接受含 有未编码的HTML的内容,它被设计来保护服务器免受注入式脚本的攻击.可以从页 面或应用程序来禁止该功能.我们在该页禁用它,在页面声明代码的顶部的的 @Page标记里ValidateRequest设置为false,如下:

<%@ Page ValidateRequest="False" ... %>

在禁用该功能后 ,再次点击“Encrypt Connection Strings”按钮,页面回传后就可 以访问配置文件了,并用DPAPI provider对<connectionStrings>节点进行 加密. TextBox控件然后将Web.config文件更新后的内容显示出来,如图4所示, <connectionStrings>节点的信息现在已经被加密了.

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

图4:点击“Encrypt Connection Strings”按钮对 <connectionString>节点进行加密

在加密前,我暂时地将 <CipherData>元素里的内容转移了:

<connectionStrings
   configProtectionProvider="DataProtectionConfigurationProvider" ;>
 <EncryptedData>
  <CipherData>
     <CipherValue>AQAAANCMnd8BFdERjHoAwE/...zChw==</CipherValue>
  </CipherData>
 </EncryptedData>
</connectionStrings>

注意:

<connectionStrings>元素指定了用来加密的provider(即 DataProtectionConfigurationProvider).当点击“Decrypt Connection Strings”按钮时UnprotectSection方法将会用到该信息.对于加密的连接字 符串,系统可以自动的对其解密.简而言之,我们不需要再对加密的 <connectionString>节点添加任何其它的代码。我们来做个验证,打开以 前的教程,比如(~/BasicReporting/SimpleDisplay.aspx页面),如图5所示,页 面像我们期望的那样工作正常,这就表明了经过加密的连接字符串被ASP.NET页面 自动解密了.

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

图5:数据访问层自动解密连接字符串信息

为将加密的 <connectionStrings>节点恢复到纯文本样式,点击“Decrypt Connection Strings”按钮。页面回传后,你将看到Web.config文件里的连 接字符串恢复到纯文本样式.此时,屏幕开起来像是最初登录的样子(见图3)

第三步:用aspnet_regiis.exe对配置节点进行加密

.NET Framework包含了很多的命令行工具,可以在$WINDOWS$\Microsoft.NET\Framework\version\ folder文件夹里找到这些工具.以第 61章《Using SQL Cache Dependencies》为例,我们用aspnet_regsql.exe命令行 工具为SQL缓存依赖添加里必要的体系结构.该文件夹里的另一个有用的工具是 ASP.NET IIS Registration tool (aspnet_regiis.exe). 就像其名字暗示的那样 ,这个ASP.NET IIS Registration工具主要用来在微软专业Web server,IIS上注 册ASP.NET 2.0应用程序.

除了其与IIS相关的属性外,该ASP.NET IIS Registration工具也可以对Web.config文件的配置节点进行加密和解密. 下面的 是使用aspnet_regiis.exe命令行工具对配置节点加密的常规代码:

aspnet_regiis.exe -pef section physical_directory -prov provider

其中section是要加密的配置节点(比如

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号