AtlasX Web Service รองรับการเข้ารหัสไฟล์ appsettings.json ด้วย AES เพื่อป้องกันข้อมูลสำคัญใน configuration เมื่อ deploy ขึ้น production โดยไฟล์ที่เข้ารหัสแล้วจะมีนามสกุล .enc
Encrypt / Decrypt
ใช้ command line arguments ในการเข้ารหัสและถอดรหัสไฟล์ โดยระบุ --crypto-mode และ --filename
Encrypt
dotnet run --crypto-mode encrypt --filename appsettings.jsonผลลัพธ์จะได้ไฟล์ appsettings.json.enc
Decrypt
dotnet run --crypto-mode decrypt --filename appsettings.json.encผลลัพธ์จะได้ไฟล์ appsettings.json
Service Registration
เรียก CryptoConfigurationUtils.TryProcessCryptoAsync() ใน Program.cs ก่อน build application เพื่อตรวจสอบว่า request นี้เป็นการเข้ารหัสหรือถอดรหัสไฟล์ ถ้าใช่จะดำเนินการแล้วหยุดทำงานทันที ไม่ start web server
if (await CryptoConfigurationUtils.TryProcessCryptoAsync(args))
{
return;
}
var builder = WebApplication.CreateBuilder(args);
await builder.Configuration.AddAppSettings(builder.Environment);