Bí mật của người dùng trông giống như một giải pháp tốt để lưu trữ mật khẩu và nói chung, bí mật ứng dụng, ít nhất là trong quá trình phát triển.
Kiểm tra điều này article hoặc this. Bạn cũng có thể kiểm tra this câu hỏi SO khác.
Đây chỉ là một cách để "ẩn" bí mật của bạn trong quá trình phát triển và tránh để tách chúng thành cây nguồn; Công cụ quản lý mật khẩu không mã hóa các bí mật được lưu trữ và không nên được coi là một cửa hàng đáng tin cậy.
Nếu bạn muốn đưa các ứng dụng được mã hóa.json vào sản xuất, không có giới hạn về điều đó. Bạn có thể xây dựng nhà cung cấp cấu hình tùy chỉnh của mình. Kiểm tra this.
Ví dụ:
public class CustomConfigProvider : ConfigurationProvider, IConfigurationSource
{
public CustomConfigProvider()
{
}
public override void Load()
{
Data = UnencryptMyConfiguration();
}
private IDictionary<string, string> UnencryptMyConfiguration()
{
// do whatever you need to do here, for example load the file and unencrypt key by key
//Like:
var configValues = new Dictionary<string, string>
{
{"key1", "unencryptedValue1"},
{"key2", "unencryptedValue2"}
};
return configValues;
}
private IDictionary<string, string> CreateAndSaveDefaultValues(IDictionary<string, string> defaultDictionary)
{
var configValues = new Dictionary<string, string>
{
{"key1", "encryptedValue1"},
{"key2", "encryptedValue2"}
};
return configValues;
}
public IConfigurationProvider Build(IConfigurationBuilder builder)
{
return new CustomConfigProvider();
}
}
Định nghĩa một lớp tĩnh cho phương pháp mở rộng của bạn:
public static class CustomConfigProviderExtensions
{
public static IConfigurationBuilder AddEncryptedProvider(this IConfigurationBuilder builder)
{
return builder.Add(new CustomConfigProvider());
}
}
Và sau đó bạn có thể kích hoạt nó:
// Set up configuration sources.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddEncryptedProvider()
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
Nguồn
2016-03-17 14:48:56
Tôi gặp vấn đề tương tự. bạn có thể hoàn thành UnencryptMyConfiguration dựa trên bình luận của bạn không? (ví dụ tải tập tin và khóa không mã hóa bằng khóa) –
Tôi đã đăng một giải pháp dưới đây hoạt động cho tôi, đơn giản hơn rất nhiều và hoàn hảo cho nhu cầu của tôi. – CoderSteve