我在Web.config中有以下条目,我使用.NET 2.0和C#进行编码。
<add key="userName" value="s752549"/>
<add key="userPassword" value="Delhi@007"/>
现在我希望将其加密,以便没有人能够看到它,而且这些密码也可能经常更改(每十五天一次)。
答案 0 :(得分:12)
只是想添加到此,标记的答案已完成99%,但它没有提供如何指定Web配置的位置。以为我只是发布完整的命令,而不是在互联网上扎根。因此,这是我执行的命令
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -pef "secureAppSettings" "C:\MyLocalPublishDirectory\MyApp" -prov DataProtectionConfigurationProvider
答案 1 :(得分:10)
您可以将用户名和密码放在单独的部分中,并仅加密此部分。例如:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="secureAppSettings" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<appSettings>
<add key="Host" value="www.foo.com" />
<add key="Token" value="qwerqwre" />
<add key="AccountId" value="123" />
<add key="DepartmentId" value="456" />
<add key="SessionEmail" value="foo@foo.com" />
<add key="DefaultFolder" value="789" />
</appSettings>
<secureAppSettings>
<add key="userName" value="s752549"/>
<add key="userPassword" value="Delhi@007"/>
</secureAppSettings>
</configuration>
然后使用aspnet_regiis
For Ex:
aspnet_regiis -pef secureAppSettings . -prov DataProtectionConfigurationProvider
答案 2 :(得分:3)
您可以在.NET中保护/取消保护整个配置部分。
有关详细信息,请参阅http://www.codeproject.com/Articles/38188/Encrypt-Your-Web-config-Please.aspx
答案 3 :(得分:1)
您可以使用aspnet_regiis,请参阅http://msdn.microsoft.com/en-us/library/zhhddkxy(v=VS.80).aspx