代码之家  ›  专栏  ›  技术社区  ›  Simple Code

如何在中隔离分离文件中的连接字符串asp.net核心?

  •  0
  • Simple Code  · 技术社区  · 8 年前

    我是新来的asp.netcore和我想知道如何将connectionstring放在单独的文件(json文件)中并忽略它,这样每个开发人员都可以修改它来添加本地connectionstring?

    在Asp.net我曾经把连接字符串放在单独的文件中(例如connectionStrings.config文件)在git上忽略它。然后在里面 web.config文件 添加以下配置:

      <connectionStrings configSource="connectionStrings.config" />
    

    那么,你能指导我如何使用asp.net核心?

    2 回复  |  直到 8 年前
        1
  •  2
  •   agua from mars    8 年前

    使用 ConfigureAppConfiguration 在你的 Program

    WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .ConfigureAppConfiguration(builder =>
    {
        builder.AddJsonFile("appsetting.json");
        builder.AddXmlFile("connectionStrings.config"));
    });
    
        2
  •  0
  •   alsami    8 年前

    具有.NET内核或ASP.NET核心我们不用网站配置或者应用程序配置为了这个目的。有一个新的 configuration-system

    1. appsettings.json文件,可选
    2. appsettings.{environment}.json,可选
    3. 环境变量

    为此,您需要有对的引用(默认情况下,通过meta包为visualstudio模板提供)

    1. Microsoft.Extensions.Configuration
    2. Microsoft.Extensions.Configuration.Json
    3. Microsoft.Extensions.Configuration.EnvironmentVariables

    现在不要使用默认配置,而是在startup类中构建自己的配置。

    public class Startup 
    {
      // environment is being injected by the webhost
      public Startup(IHostingEnvironment environment)
      {
         var configuration = new ConfigurationBuilder()
                                 .AddJsonFile(Path.Combine(AppContext.BaseDirectory, "appsettings.json"), optional: false) // u can change that if you want to be optional
                                 .AddJsonFile(Path.Combine(AppContext.BaseDirectory, $"appsettings.{environment.environmentName}.json), optional: false)"
                                 .AddJsonFile(Path.Combine(AppContext.BaseDirectory, "connectionsettings.json"), optional: false)
                                 .Build();
      }
    }
    

    然后你就可以像以前一样访问它们了

    configuration.GetConnectionString("MyConnectionString");
    

    "ConnectionStrings": {
       "MyConnectionString": "some-connectionstring-value"
    }
    
        3
  •  0
  •   Fabien    6 年前

    https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-3.1&tabs=windows

    • 这个秘密文件在git文件夹之外,所以它永远不会被错误地提交。
    • 您可以从visualstudio编辑这个秘密文件,它看起来与appsettings.json文件

    推荐文章