如何在C#2.0中的Web.config中加密用户名和密码

时间:2011-06-09 10:22:38

标签: asp.net web-config

我在Web.config中有以下条目,我使用.NET 2.0和C#进行编码。

 <add key="userName" value="s752549"/>
 <add key="userPassword" value="Delhi@007"/>

现在我希望将其加密,以便没有人能够看到它,而且这些密码也可能经常更改(每十五天一次)。

4 个答案:

答案 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