我怎样才能加密c#中的web.config变量

时间:2012-02-27 14:00:31

标签: c# .net security web-config

我必须在我的web.config中输入密码,我需要加密它并在我的代码中使用,是否有一些提示如何做到这一点?

我的web.config代码:

<appSettings>
    <add key="Password" value="test123"/>
</appSettings>

我是如何得到的:

string Password = ConfigurationManager.AppSettings["Password"];

谢谢!

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:1)

我的提示:在Google上搜索ProtectedConfigurationProvider。

我之前在应用程序中实现了自定义ProtectedConfigurationProvider。在谷歌搜索它给了我一些点击,例如http://msdn.microsoft.com/en-us/library/wfc2t3az.aspx

答案 2 :(得分:1)

使用FormsAuthentication.HashPasswordForStoringInConfigFile Method并在配置文件中存储加密密码..

void HashPassword_Click(object sender, EventArgs e)
         {
            if (Page.IsValid)
            {
               string hashMethod = "";

               if (md5.Checked)
               {
                  hashMethod = "MD5";
               }
               else
               {
                  hashMethod = "SHA1";
               }

               string hashedPassword =
                  FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text, hashMethod);

               result.Text = "&lt;credentials passwordFormat=\"" + hashMethod +"\"&gt;<br />" +
                  "  &lt;user name=\"" + Server.HtmlEncode(userName.Text) + "\" password=\"" +
                  hashedPassword + "\" /&gt;<br />" + "&lt;/credentials&gt;";
            }
            else
            {
               result.Text = "There was an error on the page.";
            }
         }
  

正如您所说,您要加密配置部分,请检查以下内容 -   安全实践中的Encrypt sections of Web.Config or App.Config和MSDN - How to encrypt sensitive data in Machine.config and Web.config:ASP.NET安全实践概览部分。

示例:

copy App.Config App.Config.original
rename App.config web.config
aspnet_regiis -pef connectionStrings . -prov DataProtectionConfigurationProvider
rename web.config App.config