نمی‌توانید. در این حالت باید پس از لاگین موفق، اطلاعات مورد نیاز را (قسمتی از همان اطلاعاتی را که داخل توکن قرار دادید) از یک endpoint محافظت شده به صورت جداگانه دریافت کنید و یا حتی می‌توانید این اطلاعات را جزئی از خروجی Response، پس از لاگین موفق قرار دهید.
‫۲ سال قبل، جمعه ۴ شهریور ۱۴۰۱، ساعت ۱۴:۵۶
یک نکته‌ی تکمیلی: روش تشخیص زود هنگام مشکلات تاثیر فرهنگ جاری برنامه بر روی محاسبات رشته‌ای آن

«Meziantou.Analyzer » بسیاری از مشکلات مرتبط با کار با رشته‌ها، عدم ذکر فرهنگ و یا نحوه‌ی مقایسه‌ی رشته‌ها را تشخیص می‌دهد. برای کار با آن فقط کافی است بسته‌ی نیوگت آن‌را به پروژه‌ی خود اضافه کنید:
<PackageReference Include="Meziantou.Analyzer" Version="1.0.708">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
و جهت محکم کاری، تمام اخطارها را تبدیل به خطا کنید تا مجبور به اصلاح آن‌ها شوید:
<PropertyGroup>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
    <RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
    <RunAnalyzersDuringLiveAnalysis>true</RunAnalyzersDuringLiveAnalysis>
</PropertyGroup>
و اگر فکر می‌کنید نیازی نیست تا موردی را الزاما اصلاح کنید (این موارد با شناسه‌هایی مانند MA0051 در خروجی کامپایلر ظاهر می‌شوند)، می‌توانید آن‌را به صورت زیر به فایل editorconfig. که در ریشه‌ی solution قرار می‌دهید، اضافه کنید و سپس severity آن‌را به suggestion تغییر دهید:
# MA0051 : Method is too long. maximum allowed: 60.
dotnet_diagnostic.MA0051.severity = suggestion
‫۲ سال قبل، چهارشنبه ۲ شهریور ۱۴۰۱، ساعت ۱۶:۲۴
- در این مثال در حالت پیش‌فرض READ COMMITTED isolation level تراکنش، هرچند وجود UPDLOCK ضروری است، اما کافی نیست و باید به همراه HOLDLOCK هم باشد، تا اثر آن تا پایان تراکنش باقی بماند تا هم select و هم update، در حالت‌های پردازش موازی، هر دو تحت کنترل قرار گیرند.
- روش اضافه کردن خودکار این hintها به تمام کوئری‌های EF، با استفاده از Interceptorها، بدون نیاز به SQL نویسی مستقیم و عدم استفاده از LINQ: « بهبود عملکرد SQL Server Locks در سیستم‌های با تعداد تراکنش بالا در Entity Framework »
‫۲ سال قبل، سه‌شنبه ۲۵ مرداد ۱۴۰۱، ساعت ۱۸:۳۴
یک نکته‌ی تکمیلی: روش اجرای خودکار کدها در ابتدای کار برنامه

حتی اگر نخواهیم از IHostedService‌ها استفاده کنیم، می‌توان از یک قابلیت جالب آن‌ها استفاده کرد: اجرای خودکار کدها در زمان آغاز برنامه.
//Define your hosted service with startup logic
public class MyHostedService : IHostedService
{
    public async Task StartAsync(CancellationToken cancellationToken)
    {
        //Startup logic here
    }

    public async Task StopAsync(CancellationToken cancellationToken)
    {
        //Cleanup logic here
    }
}

//Register hosted service 
public void ConfigureServices(IServiceCollection services)
{
    services.AddHostedService<MyHostedService>();
}
برای مثال بجای اینکه سرویسی را مستقیما در انتهای public static void Main فراخوانی کنیم:
//"Main" method
public static void Main(string[] args)
{
    var host = CreateHostBuilder(args).Build();
    //Startup logic here
    host.Run();
}
 می‌توان اجرای خودکار آن‌را به متد StartAsync فوق منتقل کرد. این روش خصوصا جهت ساده سازی توزیع کتابخانه‌ها مفید است؛ چون تنظیمات کمتری را به همراه خواهد داشت.
‫۲ سال قبل، یکشنبه ۲۳ مرداد ۱۴۰۱، ساعت ۱۴:۴۳
سؤال: آیا می‌توان در تولید کننده‌های کد از تزریق وابستگی‌ها استفاده کرد؟
پاسخ: خیر! همانطور که در این مطلب مشاهده کردید، پروسه‌ی تولید کد در حین کامپایل برنامه انجام می‌شود؛ اما تزریق وابستگی‌ها و پروسه‌ی یافتن و نمونه سازی سرویس‌ها، در زمان اجرای برنامه رخ می‌دهد.
‫۲ سال قبل، شنبه ۲۲ مرداد ۱۴۰۱، ساعت ۱۵:۱۲
یک نکته‌ی تکمیلی: روش آزمایش کردن یک کنترلر MVC

فرض کنید می‌خواهید یک قطعه کد به شکل زیر را آزمایش کنید:
public class WeatherForecastController : ControllerBase
اگر از روش فوق استفاده کنید، آزمون واحد در سطر زیر با شکست مواجه می‌شود:
Assert.IsTrue(outputCompilation.GetDiagnostics().IsEmpty)
چون این سطر، بیانگر خطاهای کامپایلر است که خالی نیست و نتوانسته ارجاعات پروژه را بازیابی کند. برای رفع این مشکل، در متد کمکی RunGenerators که تهیه شد، باید ارجاعات زیر را به ارجاعات موجود، اضافه کرد:
references = references.Concat(new[]
        {
            MetadataReference.CreateFromFile(typeof(ControllerBase).GetTypeInfo().Assembly.Location),
            MetadataReference.CreateFromFile(typeof(IActionResult).GetTypeInfo().Assembly.Location)
        });
و همچنین جهت شناسایی آن‌ها باید تعریف زیر را نیز به فایل csproj. پروژه‌ی آزمون واحد، اضافه کرد:
<Project Sdk="Microsoft.NET.Sdk">
    <ItemGroup>
        <FrameworkReference Include="Microsoft.AspNetCore.App"/>
    </ItemGroup>
</Project>
به علاوه می‌توان نوع خروجی را هم بجای یک برنامه‌ی کنسول، به یک dll. تغییر داد:
new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)
‫۲ سال قبل، پنجشنبه ۲۰ مرداد ۱۴۰۱، ساعت ۱۶:۱۳
- قسمت ConfigureAppConfiguration را حذف کنید، چون جزو کدهای توکار CreateDefaultBuilder ابتدایی هست.
- همچنین در قسمت services.Configure دقیقا باید مشخص کنید که SiteSettings از کدام Section باید دریافت شود. مثال‌های آن در این مطلب و نظرات مرتبط با آن زیاد هستند. اگر هم Section را مشخص نکنید، یعنی نگاشت کل فایل تنظیمات، مدنظر شما است و این محتوا با ساختار SiteSettings تطابق دارد.