تكرار السؤال: …
الإجابة المختصرة
يحفظ Secret Manager الأسرار في مجلد محلي خارج ملفات المشروع لمنع رفعها للـ Git، بينما في الإنتاج تُسحب الأسرار مشفرة من Azure Key Vault أو AWS Secrets Manager.
الشرح
أداة dotnet user-secrets مخصصة لبيئة التطوير المحلي؛ فهي تحفظ المفاتيح في مجلد المستخدم الخاص بنظام التشغيل وتدمجها تلقائياً مع builder.Configuration. في بيئات الإنتاج والسحاب، يتم ربط التطبيق بمخزن مركزي آمن مثل Azure Key Vault عبر مكتبة Azure.Security.KeyVault.Secrets واستخدام الهويات المدارة (Managed Identity) دون الحاجة لحفظ أي كلمة مرور في ملفات الإعدادات.
مثال بالكود
// التطوير المحلي عبر الـ CLI:
// dotnet user-secrets init
// dotnet user-secrets set "DbPassword" "SuperSecret123"
// في كود الإنتاج مع الهوية المدارة:
builder.Configuration.AddAzureKeyVault(new Uri(keyVaultUrl), new DefaultAzureCredential());أخطاء شائعة
- كتابة كلمات مرور قواعد البيانات الحقيقية داخل ملف appsettings.json ورفعها إلى مستودعات Git.