یک نکته‌ی تکمیلی
Auth0 یکی از IDPهای معروف تجاری است. در اینجا 4 دلیل را برای روی آوردن سازمان‌ها به single sign-on، برشمرده‌است:

‫۶ سال قبل، یکشنبه ۲۵ شهریور ۱۳۹۷، ساعت ۱۶:۳۹
یک نکته‌ی تکمیلی: UseHttpSys و استفاده‌ی از HTTPS
اگر بخواهید برای آزمایش برنامه از روش UseHttpSys استفاده کنید و همچنین « اجبار به استفاده‌ی از HTTPS در حین توسعه‌ی برنامه‌های ASP.NET Core 2.1 » را هم فعال کرده باشید ... برنامه کار نمی‌کند. از این جهت که در حالت استفاده‌ی از http.sys ویندوز، آدرس‌ها و پورت‌های SSL، باید به این صورت نصب شوند:
netsh http add sslcert ipport=0.0.0.0:6001 certhash=<thumbprint of certificate> appid={new guid here} certstorename=Root
در اینجا در کنسول مدیریت مجوزهای ویندوز، به خواص آن مجوز مراجعه کرده و thumbprint آن‌را در قسمت certhash وارد کنید. یک guid دلخواه را هم باید داخل {} در قسمت appid ذکر کنید. سپس این دستور را با دسترسی مدیریتی در خط فرمان ویندوز اجرا کنید. پس از آن است که برنامه برای مثال می‌تواند بر روی پورت 6001 که SSL تعریف شده، از http.sys استفاده کند.
مشکلات احتمالی
مجوزی که در اینجا ذکر می‌شود باید دارای private key بوده و همچنین در local computer وارد شده باشد؛ در غیراینصورت خطای زیر را دریافت می‌کنید:
SSL Certificate add failed, Error: 1312 A specified logon session does not exist.
It may already have been terminated.
- برای رفع آن از طریق اجرای certmgr.msc، در قسمت «Personal/Certificates»، مجوز پیش‌فرض ASP.NET Core را با نام «ASP.NET Core HTTPS development certificate»، انتخاب کرده و بر روی آن کلیک راست کنید. سپس گزینه‌ی All tasks -> export را انتخاب کنید. نکته‌ی مهمی را که در اینجا باید رعایت کنید، انتخاب گزینه‌ی «yes, export the private key» است. کپی و paste این مجوز از اینجا به جایی دیگر، این private key را export نمی‌کند. به همین جهت مشکل فوق را مشاهده خواهید کرد. در پایان این عملیات، یک فایل pfx را خواهید داشت.
- اکنون برای import این فایل pfx، بجای ورود به قسمت مدیریت مجوزهای ویندوز از طریق certmgr.msc، نیاز است از طریق mmc و add remove snap-ins وارد شوید تا بتوانید به local computer دسترسی پیدا کنید. 
- به همین جهت در خط فرمان دستور mmc را وارد کرده و آن‌را اجرا کنید. در صفحه‌ی باز شده، گزینه‌ی File -> Add remove snap-ins را انتخاب کنید. در اینجا در لیست ظاهر شده، certificates را انتخاب و add کنید. در صفحه‌ی بعدی نیز computer account و سپس local computer را انتخاب کنید. اکنون بر روی دکمه‌ی ok کلیک کنید تا صفحه‌ی certificate مخصوص local computer ظاهر شود. حالت استفاده‌ی از certmgr.msc، مجوزهای current user را نمایش می‌دهد که برای اینکار مناسب نیست.
- در پایان، این فایل pfx را در مسیر «Trusted Root Certification Authorities/Certificates» قرار دهید. برای اینکار بر روی نود certificate کلیک راست کرده و گزینه‌ی All tasks -> import را انتخاب کنید. سپس مسیر فایل pfx خود را داده و این مجوز را import نمائید.
- اکنون اگر مجددا دستور netsh http add sslcert یاد شده را اجرا کنید، بدون مشکل اجرا می‌شود.
‫۶ سال قبل، جمعه ۲۳ شهریور ۱۳۹۷، ساعت ۰۰:۱۷
استفاده از Action filter‌ها برای این نوع کارها بیشتر در ASP.NET MVC 5.x مرسوم بودند. در اینجا یک میان‌افزار برای آن تهیه شده که اطلاعات کامل کلاینت بسته شده را در سیستم استاندارد و توکار Logging ثبت می‌کند. پس از آن اگر از پروایدر Console سیستم Logging استفاده کنید، نتیجه را در صفحه‌ی Console مشاهده خواهید کرد و اگر پروایدر و لاگر مبتنی بر دیتابیس را برای آن تهیه کنید، نتایج را در بانک اطلاعاتی لاگ می‌کند.
‫۶ سال قبل، پنجشنبه ۲۲ شهریور ۱۳۹۷، ساعت ۲۳:۰۸
- خیر. تنظیم این اعداد به مقادیر کوچک، کاربران عادی را هم از انجام کارهای ساده عاجز می‌کند.
- اطلاعات IPهای بسته شده توسط خود این ماژول لاگ می‌شود. اگر سیستم لاگر مبتنی بر دیتابیس را به برنامه اضافه کنید، این لاگ‌ها به صورت خودکار در بانک اطلاعاتی ذخیره خواهند شد. در آنجا آی‌دی کاربر یا هر اطلاعات دیگری را هم خودتان به ازای هر لاگ ارائه شده، ذخیره کنید. البته اگر از Shadow properties و یا سیستم Tracking استفاده می‌کنید، لاگر مبتنی بر دیتابیس  اطلاعات کاملی را از کاربر جاری ذخیره می‌کند و نیازی به کدهای اضافه‌تری ندارد.
‫۶ سال قبل، دوشنبه ۱۹ شهریور ۱۳۹۷، ساعت ۰۵:۳۲
- تنظیمات شما اسمبلی حاوی IMessagesService را اسکن می‌کند و تمام کلاس‌هایی را که از کلاس MessagesService مشتق شده باشند، به لیست سرویس‌های ثبت شده‌ی سیستم تزریق وابستگی‌ها اضافه خواهد کرد. یعنی هیچ کلاسی را.
- شما در عمل به دنبال اسکن کل اسمبلی و ثبت و اتصال IClassName‌ها به ClassName‌ها با طول عمر Transient هستید (چیزی شبیه به عملیات اسکن پیش‌فرض StructureMap) که در اینجا چنین شکلی را پیدا می‌کند:
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.Scan(scan => scan.FromAssemblyOf<IMessagesService>()
                                  .AddClasses()
                                  .AsMatchingInterface() // Registers all <`IClassName`, `ClassName`>
                                  .WithTransientLifetime()
               );