ASP.NET的Web.config文件
创始人
2024-04-21 02:10:17
0

在ASP.NET中新增了对web.config中的部分数据进行加密的功能,可以使用RSAProtectedConfigurationProvider和 DPAPIProtectedConfigurationProvider来加密,本文说明使用 RSAProtectedConfigurationProvidert和计算机级别的密钥容器进行加密的步骤。

1. 首先确定要进行加密的web.config中的配置节是否可以加密

2. 创建RSA密钥容器
 
3. 在web.config中标识要使用的密钥容器

4. 对web.config进行加密

5. 授予对 RSA 密钥容器的访问权限

首先确定要进行加密的web.config中的配置节是否可以加密

ASP.NET 2.0支持对Web.config的部分配置节进行加密,以下配置节中的数据是不能进行加密的:

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  

创建 RSA 密钥容器

若要创建 RSA 密钥容器,请使用 ASP.NET IIS 注册工具 (Aspnet_regiis.exe) 及 –pc 开关。必须为密钥容器指定一个名称,该名称标识应用程序的 Web.config文件的 configProtectedData 节中指定的 RsaProtectedConfigurationProvider 所使用的密钥容器。为确保可以导出新创建的 RSA 密钥容器,必须包括 -exp 选项。

例如,下面的命令创建一个名为 ABeenKeys 的 RSA 密钥容器,该容器是可导出的计算机级密钥容器。
aspnet_regiis -pc "ABeenKeys"–exp

Modify web.config to identify the key container

编辑Web.config文件以标识要使用的密钥容器
在web.config中加以来配置密钥容器, 使用名为 ABeenKeys 的计算机级 RSA 密钥容器的
在< configuration>中加入xmlns属性

  1.  xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 


使用名为 ABeenKeys 的计算机级 RSA 密钥容器的 saProtectedConfigurationProvider。

  1.  > 
  2.  
  3.  name="ABeenProvider" 
  4. type="System.Configuration.RsaProtectedConfigurationProvider, System.
    Configuration, Version=2.0.0.0,Culture=neutral, processorArchitecture=MSIL"
     
  5. keyContainerName="ABeenKeys"/> 
  6.  
  7.  

Encrypt the section of your web.config file

加密你的web.config文件中的配置节aspnet_regiis -pe "connectionStrings" -app "/connectionTest" 

授予对 RSA 密钥容器的访问权限

可以通过以下代码确定应该给哪个用户权限
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);

默认情况下,RSA 密钥容器受到所在服务器上的 NTFS 访问控制列表 (ACL) 的严密保护。这样能够限制可以访问加密密钥的人员,从而增强加密信息的安全性。必须首先向 ASP.NET 应用程序的进程标识授予对该 RSA 密钥容器的读取访问权限,然后 ASP.NET 才能使用 RSA 密钥容器。可以使用 Aspnet_regiis.exe 工具及 -pa 开关,向 ASP.NET 应用程序的标识授予读取 RSA 密钥容器的权限。例如,下面的命令向 Windows Server 2003 NETWORK SERVICE 帐户授予对名为 ABeenKeys 的计算机级 RSA 密钥容器的读取访问权限:

aspnet_regiis -pa "ABeenKeys" "NT AUTHORITY\NETWORK SERVICE"

注意:

如果 RSA 密钥容器是用户级容器,必须以其 Windows 配置文件存储了密钥的用户的身份登录,并且必须包括 -pku 选项以授予对该用户级 RSA 密钥容器的访问权限。

若要使用计算机配置中指定的默认 RsaProtectedConfigurationProvider,必须首先向应用程序的 Windows 标识授予对名为 NetFrameworkConfigurationKey 的计算机密钥容器的访问权限,该计算机密钥容器是为该默认提供程序指定的密钥容器。例如,下面的命令向 NETWORK SERVICE 帐户授予对默认 RsaProtectedConfigurationProvider 所使用的 RSA 密钥容器的访问权限。

aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"

NetFrameworkConfigurationKey RSA 密钥容器是 Aspnet_regiis.exe 工具所发出的命令的默认密钥容器。因此上述命令也可以按以下方式发出:

aspnet_regiis -pa "NT AUTHORITY\NETWORK SERVICE"

【编辑推荐】

  1. ASP.NET的TypeConverter
  2. 浅析ASP.NET的TypeResolver
  3. ASP.NET中定义JavaScriptConverter
  4. 在ASP.NET中替换Sys.Services的方法
  5. 使用ASP.NET AJAX的Profile Service

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...