Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET核心:在何处放置用于生产的连接字符串_C#_Sql Server_Macos_Asp.net Core Mvc_Connection String - Fatal编程技术网

C# ASP.NET核心:在何处放置用于生产的连接字符串

C# ASP.NET核心:在何处放置用于生产的连接字符串,c#,sql-server,macos,asp.net-core-mvc,connection-string,C#,Sql Server,Macos,Asp.net Core Mvc,Connection String,Net内核,使用5.0.100版,我正在尝试将我的web应用程序发布到托管提供商。我正在尝试找出将连接字符串放置在何处。现在我已经把它放在appsetting.json中了 "ConnectionString": { "default": "data source=.; database= myDataBase; user id = sa; password = myPassw0rd", } 这是坏习惯吗?我担心有

Net内核,使用5.0.100版,我正在尝试将我的web应用程序发布到托管提供商。我正在尝试找出将连接字符串放置在何处。现在我已经把它放在appsetting.json中了

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

这是坏习惯吗?我担心有人会找到连接字符串并入侵网站。提前谢谢你

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

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

有关上述所有配置,请参阅文档。每个选项都有不同的风险,因此您需要评估哪一个选项对您的用例最有意义。

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


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