【问题标题】:Azure deploying a web.config file with connection string in plain textAzure 部署带有纯文本连接字符串的 web.config 文件
【发布时间】:2018-01-19 07:49:04
【问题描述】:

我的代码中的 web.config 文件只包含我的本地开发数据库连接字符串,当我将我的 Web 应用程序部署到 Azure 时,它​​正确地从门户应用程序设置中的连接字符串条目中获取我的数据库的连接字符串。然而,它会创建和部署一个带有纯文本字符串的 web.config 文件(如果我通过 FTP 检查文件,我可以看到这一点)。

这是正确的行为吗?我真的不希望将连接字符串以纯文本形式存储在已部署的 web.config 文件中(尽管这可能已经很安全了)。

现在是否需要通过一些构建/部署步骤来加密 web.config 文件的该部分?我在其他帖子中看到过这一点,但不清楚如何在 Azure 上做到这一点。

注意抱歉,如果我已经进行了很多搜索,但找不到任何直接涉及最终部署的 web.config 文件的内容,则表示歉意。

【问题讨论】:

  • 已经尝试过这个? stackoverflow.com/questions/36951231/…
  • 事实证明,我在 VS 发布到 Azure 向导上勾选了“在运行时使用此连接字符串(更新目标 web.config)”框,所以这就是注入连接字符串的原因.
  • 另外,但是因为我勾选了“执行代码优先迁移”框,所以还添加了第二个“Context_DatabasePublish”conn 字符串(本质上是第二个副本) - 所以我决定运行我的代码优先迁移手动通过代码而不是使用此选项和 ​​web.config,如此处所述 > stackoverflow.com/questions/30280346/…。结果现在只是 web.config 中的本地 dev conn 字符串,Azure 在运行时将其换出为我的门户应用程序设置中的值
  • 感谢您提供的链接,毫无疑问,这将在以后的某个时候派上用场
  • 你有关于这个线程的任何更新吗?

标签: c# asp.net azure web-config azure-web-app-service


【解决方案1】:

如果我们不想在 Web.config 中以纯文本形式配置连接字符串。我们可以在 Azure Website appsetting 中设置连接字符串以在 web.config 中替换它。

有一个关于How Application Strings and Connection Strings Work的教程

开发人员可以存储普通的键值对以及用作连接字符串的键值对。由于键值对存储在 Windows Azure 网站配置存储的幕后,因此键值对不需要存储在 Web 应用程序的文件内容中来自 安全性这是一个很好的附带好处,因为敏感信息(例如带有密码的 Sql 连接字符串)永远不会在 web.config 或 php.ini 文件中显示为明文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多