我遵循了this answer,现在不确定如何获取正确的值并在代码中使用它们。
这是我要使用的配置部分:
"ConnectionStrings": {
"connString1": "CfDJ8P1kYd0KR1J........",
"connString2": "CfDJ8P1kYd0KR1J........"
}
这是我的Startup.cs文件:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddProtectedConfiguration();
services.ConfigureProtected<ProtectedConnectionStrings>(Configuration.GetSection("ConnectionStrings"));
services.AddDbContext<MyDBContext>(options =>
options.UseSqlServer(Configuration.GetSection("ConnectionStrings")["connString2"]));
.
.
.
但是我从配置中获得的值未解密。
此外,从Configuration.GetSection()
返回的对象是常规ConfigurationSection
对象(而不是我拥有的自定义ProtectedConfigurationSection
对象)。
是否应该将加密的值存储在appsettings.json
文件中?还是将它们存储在key-....
文件中?
我在做什么错了?
答案 0 :(得分:0)
您必须使用DI从服务中获取未加密的值。
public class MySQLClass
{
public MySQLClass(IOptions<ConnectionStrings> connectionStrings)
{
string unencryptedCS = connectionStrings.Value.connString1;
}
}