رادکام
ما در مطلب قبلی به نحوه استفاده از متغیرهای محیطی (environment variables) برای نگه داشتن اطلاعات حساس خارج از کد نگاه کردیم. ابزار Secret Manager راه دیگری برای ذخیره اطلاعات سری، خارج از پروژه و دسترسی به آنها از طریق کلاس configuration است. برخلاف متغیرهای محیطی، این امکان فقط برای زمان توسعه و پیاده سازی استفاده می شود.
اولین قدم نصب Secret Manager با ویرایش فایل پروژه Roux Academy است.
ما یک عنصر ItemGroup جدیدی به شکل زیراضافه می کنیم.
<itemgroup>
<dotnetclitoolreference include="Microsoft.Extensions.SecretManager.Tools" version="1.0.0-msbuild3-final">
</dotnetclitoolreference>
</itemgroup>
{
"PaymentProcessorPassword" : "pmtp@$$w0rd"
}
بیایید به فایل پروژه برگردیم و می بینیم که یک عنصر UserSecretsId اضافه شده است. این یک GUID منحصر به فرد است که مشخص می کند Secrets به کدام برنامه تعلق دارد.
ما باید بتوانیم با استفاده از امکانات configuration به این اطلاعات سری دسترسی داشته باشیم. برای انجام این کار، باید یک بسته NuGet را برای User Secrets نصب کنیم. پیش بروید و بسته Microsoft.Extensions.Configuration.UserSecrets را جستجو کنید و ما آن را در پروژه Roux Academy نصب می کنیم.
سپس، در سازنده کلاس startup باید ارائه دهنده پیکربندی User Secrets را اضافه کنیم.
از آنجایی که این فقط برای محیط توسعه اعمال می شود، آن را در یک عبارت شرطی قرار می دهیم.
و سپس User Secrets را اضافه می کنیم.
if (env.IsDevelopment())
{
builder.AddUserSecrets<Startup>();
}
از آنجا که این اطلاعات آخرین تنظیماتی هست که بارگذاری می شوند، تنظیمات و اطلاعات داخل فایل Secrets.json هر گونه تنظیمات را از منابع پیکربندی دیگر لغو می کند و اطلاعات درون آنها جایگزین اطلاعات سابق می شود. ما می توانیم اطلاعات سری خود را با استفاده از همین روال استاندارد خواندن اطلاعات پیکربندی بخوانیم. اجازه دهید به شما نشان دهم که چگونه در متد ConfigureServices این کار را انجام می دهیم.var secret = Configuration["PaymentProcessorPassword"];
و این تمام چیزی است که برای خواندن مقدار سری نیاز دارید.566بازدید
دیدگاه کاربران
هنوز دیدگاهی ثبت نشده است.
شما میتوانید درباره این مقاله، دیدگاه خود را ثبت کنید.