TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 548 subscribers
Post #136 121
مپ کردن اسرار به یک POCO 🔗

مپ کردن یک آبجکت کامل به یک POCO (یک کلاس ساده #C با پراپرتی‌ها) برای جمع‌آوری پراپرتی‌های مرتبط مفید است.فرض کنید فایل secrets.json برنامه شامل دو سرّ زیر است:
{
"Movies:ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=Movie-1;Trusted_Connection=True;MultipleActiveResultSets=true",
"Movies:ServiceApiKey": "12345"
}

کد زیر به یک POCO سفارشی به نام MovieSettings متصل شده و به مقدار پراپرتی ServiceApiKey دسترسی پیدا می‌کند:
var moviesConfig = 
Configuration.GetSection("Movies").Get<MovieSettings>();
var _moviesApiKey = moviesConfig.ServiceApiKey;

اسرار Movies:ConnectionString و Movies:ServiceApiKey به پراپرتی‌های مربوطه در MovieSettings مپ می‌شوند:
public class MovieSettings
{
public string ConnectionString { get; set; }
public string ServiceApiKey { get; set; }
}


جایگزینی رشته با اسرار 🛠️

ذخیره پسوردها به صورت متن ساده ناامن است. پسورد را به عنوان یک سرّ ذخیره کنید و در زمان اجرا آن را به رشته اتصال اضافه کنید.
dotnet user-secrets set "DbPassword" "<secret value>"

using System.Data.SqlClient;

var builder = WebApplication.CreateBuilder(args);

var conStrBuilder = new SqlConnectionStringBuilder(
builder.Configuration.GetConnectionString("Movies"));
conStrBuilder.Password = builder.Configuration["DbPassword"];
var connection = conStrBuilder.ConnectionString;

var app = builder.Build();
app.MapGet("/", () => connection);
app.Run();


📑 دستورات CLI


لیست کردن اسرار list 📋
dotnet user-secrets list

حذف یک سرّ واحد remove 🗑️
dotnet user-secrets remove "Movies:ConnectionString"

حذف تمام اسرار clear ♻️
dotnet user-secrets clear

مدیریت اسرار کاربر با ویژوال استودیو :
برای مدیریت اسرار کاربر در ویژوال استودیو، در Solution Explorer روی پروژه راست‌کلیک کرده و Manage User Secrets را انتخاب کنید.

اسرار کاربر در اپلیکیشن‌های غیر وب 🖥️
برای اپلیک
یشن‌هایی مانند Console App، باید پکیج‌های NuGet 📦 زیر را به صورت دستی اضافه کنید:
با استفاده از PowerShell:

Install-Package Microsoft.Extensions.Configuration
Install-Package Microsoft.Extensions.Configuration.UserSecrets

با استفاده از .NET CLI:
dotnet add package Microsoft.Extensions.Configuration
dotnet add package Microsoft.Extensions.Configuration.UserSecrets

پس از نصب پکیج‌ها، پروژه را مقداردهی اولیه کرده و اسرار را همانند یک اپلیکیشن وب تنظیم کنید. مثال زیر یک اپلیکیشن کنسول را نشان می‌دهد که مقدار یک سرّ را که با کلید "AppSecret" تنظیم شده، بازیابی می‌کند:
using Microsoft.Extensions.Configuration;

class Program
{
static void Main(string[] args)
{
IConfigurationRoot config = new ConfigurationBuilder()
.AddUserSecrets<Program>()
.Build();

Console.WriteLine(config["AppSecret"]);
}
}
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →