【问题标题】:ASP.NET Core: Where to place Connection String for ProductionASP.NET Core:生产连接字符串的位置
【发布时间】:2020-12-20 01:33:58
【问题描述】:

ASP.Net Core,使用版本 5.0.100,我正在尝试将我的 Web 应用程序发布到托管服务提供商。我试图找出放置连接字符串的位置。截至目前,我在appsetting.json 内拥有它。

"ConnectionString": {
    "default": "data source=.; database= myDataBase; user id =    sa; password = myPassw0rd",
  } 

这是不好的做法吗?我担心有人可能会找到连接字符串并破解网站。提前谢谢!

【问题讨论】:

    标签: c# sql-server macos asp.net-core-mvc connection-string


    【解决方案1】:

    有几个地方可以放置连接字符串:

    • 设置文件,例如 appsettings.json
    • 环境变量
    • Azure 密钥库
    • Azure 应用配置
    • 命令行参数
    • 自定义提供程序,安装或创建
    • 目录文件
    • 内存中的 .NET 对象

    请参阅Configuration in ASP.NET Core 的文档以了解上述所有配置。每个选项都有不同类型的风险,因此您需要评估哪个选项最适合您的用例。

    【讨论】:

    • 我在我的 Web 应用程序上实现了环境变量:macOS。这可能是一个愚蠢的问题,因为我刚刚开始,但是所有托管服务提供商都提供环境变量吗?我想使用 HostGator,但我不确定他们是否提供 asp.net 核心环境变量。
    • 我不能代表 HostGator,但我希望所有托管服务提供商都提供设置环境变量的方法。
    【解决方案2】:

    很高兴您质疑如何最好地管理连接字符串。在 appsettings.json 和 web.config 等任何配置文件中存储凭据是个坏主意。有多种方法可以保护您的秘密。这实际上取决于您的特定用例。我的首选方法是使用应用程序池标识。这里有一些资源可以帮助您入门。

    Connection String Security C#

    Protecting Connection Information

    Application Pool Identities

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 2010-10-05
      • 1970-01-01
      相关资源
      最近更新 更多