在aspnet中发布网站时加密webconfig这样可以有效保证数据库用户和密码安全其步骤如下:
添加密钥
执行:C:WINDOWSMicrosoftNETFrameworkvaspnet_regiispc"hnlaw"exp
其中"hnlaw"为密钥名称
添加webconfig节点
在webconfig的<configuration></configuration>之间添加:
<configPRotectedData>
<providers>
<addkeyContainerName="hnlaw"useMachineContainer="true"description="UsesRsaCryptoServiceProvidertoencryptand
decrypt"name="hnlaw"type="SystemConfigurationRsaProtectedConfigurationProviderSystemConfigurationVersion=
Culture=neutralPublicKeyToken=bfffdaa"/>
</providers>
</configProtectedData>
注意:这里keyContainerName="hnlaw"和name="hnlaw"分别表示你的密钥名称;
加密webconfig
到网站根目录添加一个批处理文件enwebbat内容如下:
@echooff
C:WINDOWSMicrosoftNETFrameworkvaspnet_regiispef"systemweb/identity""E:HSStudioDonetHnlawyer"prov
"hnlaw"
C:WINDOWSMicrosoftNETFrameworkvaspnet_regiispef"connectionStrings""E:HSStudioDonetHnlawyer"prov
"hnlaw"
PAUSE
注册上面的的路径和名称!
运行后出现成功!
解密
同样到网站根目录添加一个批处理文件dewebbat内容如下:
@echooff
C:WINDOWSMicrosoftNETFrameworkvaspnet_regiispef"systemweb/identity""E:HSStudioDonetHnlawyer"
C:WINDOWSMicrosoftNETFrameworkvaspnet_regiispdf"connectionStrings""E:HSStudioDonetHnlawyer"
PAUSE
最后就是要注意:做完后找到C:DocumentsandSettingsAllUsersapplicationDataMicrosoftCryptoRSAMachineKeys目录下找到生成
的密钥文件(可按时间查找)给上networkservice可读取权限不然会出现Errormessagefromtheprovider:TheRSAkeycontainercould
notbeopened
无法读取
这样可能会出现如果没有自己的服务器没有权限修改MachineKeys目录不知道还有其它解决办法希望大家共享一下:)