首先,不要在
appsettings.json
中保存敏感数据(登录名、密码、API密钥),因为你可能会意外提交到版本控制,从而导致凭证泄露。为此,你需要使用开发过程中的用户秘密工具,请参阅
用户秘密文档获取详细信息。
其次,请仔细阅读
Configuration.GetConnectionString("DefaultConnection");
方法的工具提示文档。它明确指出 `GetConnectionString 是一个
缩写 GetSection(“ConnectionStrings”)[name]
话虽如此,你的 appsettings.json 必须像这样:
{
...,
"ConnectionStrings":
{
"DefaultConnection" : "Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"
}
}
或者当使用用户机密时:
dotnet user-secrets set ConnectionStrings:DefaultConnection Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
更新
在控制台应用程序中使用它完全相同。配置包不是ASP.NET Core特定的,可以单独使用。
所需的软件包取决于您想要使用哪个软件包:
"Microsoft.Extensions.Configuration": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
构建配置的代码与ASP.NET Core中的完全相同。只需将其放在Main
方法中而不是在Startup.cs
中即可:
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddUserSecrets()
.AddEnvironmentVariables();
string connectionString = Configuration.GetConnectionString("DefaultConnection"); services.AddDbContext(option =>option.UseSqlServer(connectionString, m => m.MigrationsAssembly("MyMVCDLL")));
services.Configure(Configuration.GetSection("AppSettings"));
将其翻译为中文: - jkyadav