【问题标题】:asp.net mvc 3 web.config connection string encryptionasp.net mvc 3 web.config 连接字符串加密
【发布时间】:2011-11-07 04:49:26
【问题描述】:

我必须部署一个 asp.net mvc 3 网站,它的 web.config 包含数据库凭据。

找了一阵子,发现可以把连接字符串放在App_Data文件夹下的.cs文件里,但是如果数据库密码改了,就需要重新编译网站了。

我也到了这个链接: Encrypt Configuration Sections in ASP.NET 2.0 Using RSA,但是页面上说内容没有退役。

有人可以告诉更新的做法,以加密 web.config 文件中的连接字符串信息。

谢谢。

【问题讨论】:

标签: asp.net-mvc-3 encryption web-config connection-string


【解决方案1】:

对特定的 web.config 文件使用加密/解密方法 似乎仍然是首选做法 Classic implementation programmatically 我认为加密 web.config 的做法并没有随着 MVC 更新,除了显然你不能使用事件按钮来调用上面示例中的方法。您想将 Encrypt/Decrypt 方法映射到控制器操作。

 public ActionResult Encrypt()
    {
      ProtectSection("connectionStrings", "RSAProtectedConfigurationProvider");

       return View();
    } 


private void ProtectSection(string sectionName,
                        string provider)   {
Configuration config =
    WebConfigurationManager.
        OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section =
             config.GetSection(sectionName);

if (section != null &&
          !section.SectionInformation.IsProtected)
{
    section.SectionInformation.ProtectSection(provider);
    config.Save();
}}

【讨论】:

【解决方案2】:

加密 Web.Config 文件中的连接字符串,我们可以按照以下步骤操作。

  • 以管理员身份打开 C:\Windows\System32\CMD.exe
  • 在 CMD 中键入 CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319 在 CMD 中键入 aspnet_regiis.exe -pef connectionStrings “文件夹路径 包含 Web.Config 文件”

    例如:aspnet_regiis.exe -pef “connectionStrings” “D://PROJECTS/SAMPLE_PROJECT”

  • 将项目 web.config 的身份模拟设置为 false

 <system.web>
 <identity impersonate="true" />
 </system.web>

解密,可以使用下面的命令。

  • 以管理员身份打开 C:\Windows\System32\CMD.exe
  • 在 CMD 中键入 CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
  • 在 CMD 中键入 aspnet_regiis.exe -pdf “connectionStrings” “包含 Web.Config 文件的文件夹路径”

    例如:aspnet_regiis.exe -pdf “connectionStrings” “D://PROJECTS/SAMPLE_PROJECT”

my article点赞

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2010-12-14
    • 2012-06-18
    • 2012-05-31
    • 1970-01-01
    • 2011-08-19
    相关资源
    最近更新 更多