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

Man*_*ngh 14 asp.net web-config

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

 <add key="userName" value="s752549"/>
 <add key="userPassword" value="Delhi@007"/>
Run Code Online (Sandbox Code Playgroud)

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

ewi*_*ows 13

只是想补充一点,标记的答案是99%完成,但它没有提供如何指定Web配置的位置.以为我只是发布完整的命令,而不是在互联网上扎根.因此,这是我执行的命令

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -pef "secureAppSettings" "C:\MyLocalPublishDirectory\MyApp" -prov DataProtectionConfigurationProvider
Run Code Online (Sandbox Code Playgroud)


Sau*_*abh 12

您可以将用户名和密码放在单独的部分中,并仅加密此部分.例如:

<?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>
Run Code Online (Sandbox Code Playgroud)

然后使用aspnet_regiis

For Ex: 
aspnet_regiis -pef secureAppSettings . -prov DataProtectionConfigurationProvider
Run Code Online (Sandbox Code Playgroud)