در قسمت قبل کلاسهای متناظر با جداول پایهی ASP.NET Core Identity را تغییر دادیم. اما هنوز سرویسهای پایهی این فریم ورک مانند مدیریت و ذخیرهی کاربران و مدیریت و ذخیرهی نقشها، اطلاعی از وجود آنها ندارند. در ادامه این سرویسها را نیز سفارشی سازی کرده و سپس به ASP.NET Core Identity معرفی میکنیم.
سفارشی سازی RoleStore
ASP.NET Core Identity دو سرویس را جهت کار با نقشهای کاربران پیاده سازی کردهاست:
- سرو ...
با به پایان رسیدن مرحلهی توسعهی ASP.NET Identity 2.x مخصوص نگارشهای ASP.NETایی که از Full .NET Framework استفاده میکنند، نگارش جدید آن صرفا بر پایهی ASP.NET Core تهیه شدهاست و در طی یک سری، نحوهی سفارشی سازی تقریبا تمام اجزای آنرا بررسی خواهیم کرد. جهت سهولت پیگیری این سری، پروژهی کامل سفارشی سازی شدهی ASP.NET Core Identity را از مخزن کد DNT Identity میتوانید دریافت کنید.
پیشنیازهای اجرای پروژهی DNT Identity ...
هنوز هم اجزای مختلف فایل web.config در ASP.NET Core قابل تعریف و استفاده هستند ؛ اما اگر صرفا بخواهیم از این نوع برنامهها در ویندوز و به کمک وب سرور IIS استفاده کنیم. با انتقال برنامههای چندسکویی مبتنی بر NET Core. به سایر سیستم عاملها، دیگر اجزایی مانند استفادهی از ماژول فشرده سازی صفحات IIS و یا ماژول URL rewrite آن و یا تنظیمات static cache تعریف شدهی در فایل web.config، شناسایی نشده و تاثیری نخواهند داشت. به همین جهت تیم ASP.NET ...
ASP.NET Core به همراه زیر ساختیاست جهت خارج کردن امکانات Caching درون حافظهای آن از سرور جاری و انتقال آن به سرورهای دیگر جهت کاهش بار سرور و برنامه. این کش توزیع شده را میتوان به عنوان زیرساختی برای مدیریت سشنها، مدیریت اطلاعات کش و همچنین مدیریت کوکیهای حجیم ASP.NET Core Identity نیز بکار گرفت. برای مثال بجای ارسال یک کوکی حجیم بالای 5 کیلوبایت به کلاینت، فقط ID رمزنگاری شدهی آنرا ارسال کرد و اصل کوکی را در داخل دیتابیس ذخیره و ...
یک نمونه روش یافتن لیست تمام کنترلرها و اکشن متدهای یک برنامهی ASP.NET MVC 5.x را در مطلب « نحوه ایجاد یک نقشهی سایت پویا با استفاده از قابلیت Reflection » میتوانید ملاحظه کنید. استفادهی از این روش با ASP.NET Core الزاما به پاسخ مناسبی نخواهد رسید؛ چون در اینجا POCO controllers هم اضافه شدهاند. به علاوه میتوان اسمبلیهای دیگری را در زمان آغاز برنامه به تنظیمات AddMvc اضافه کرد و تمام آنها هم میتوانند حاوی کنترلرها و ویووها خاص خ ...
برای ارسال متن ایمیلها، یا میتوان یک سری رشته را با هم جمع زد و ارسال کرد و یا یک View را به همراه ViewModel آن، طراحی و سپس این View را تبدیل به یک رشته کرد. روش دوم هم قابلیت طراحی بهتری دارد و هم نگهداری و توسعهی آن سادهتر است. در ادامه روش تبدیل Razor Viewهای ASP.NET Core را به یک رشته، بررسی میکنیم.
تهیه سرویسی برای رندر کردن Razor Viewها به صورت یک رشته
در ادامه کدهای کامل سرویسی را که توسط RazorViewEngi ...
مدیریت پردازش آپلود فایلها در ASP.NET Core نسبت به ASP.NET MVC 5.x به طور کامل تغییر کردهاست و اینبار بجای ذکر نوع System.Web.HttpPostedFileBase باید از اینترفیس جدید IFormFile واقع در فضای نام Microsoft.AspNetCore.Http کمک گرفت.
مراحل فعال سازی آپلود فایلها در ASP.NET Core
مرحلهی اول فعال سازی آپلود فایلها در ASP.NET Core، شامل افزودن ویژگی "enctype="multipart/form-data به یک فرم تعریف شدهاست: <form m ...
در نگارشهای دیگر ASP.NET، برای دسترسی به اطلاعات درخواست وب جاری، میتوان از خاصیت استاتیک System.Web.HttpContext.Current استفاده کرد. با حذف شدن System.Web از ASP.NET Core و همچنین بهبود طراحی آن جهت سازگاری کامل با مفاهیم تزریق وابستگیها، دیگر روش استفادهی مستقیم از خواص استاتیک توصیه نشده و بجای آن تزریق اینترفیس ویژهی IHttpContextAccessor توصیه میشود.
دسترسی به اطلاعات درخواست وب جاری در ASP.NET Core
برای ...
فضای نام System.Net.Mail در NET Core 1.2. که پیاده سازی netstandard2.0 است، ارائه خواهد شد . بنابراین فعلا (در زمان NET Core 1.1.) راه حل توکار و رسمی برای ارسال ایمیل در برنامههای مبتنی بر NET Core. وجود ندارد. اما میتوان کتابخانهی ثالثی را به نام MailKit، به عنوان راهحلی که .NET 4.0, .NET 4.5, .NET Core, Xamarin.Android, و Xamarin.iOS را پشتیبانی میکند، درنظر گرفت و توانمندیها و پروتکلهای پشتیبانی شدهی توسط آن، از System.Net. ...
کار با Areas را تا ASP.NET MVC 5.x میتوانید در مطلب « ASP.NET MVC #14 » مطالعه کنید. در ASP.NET Core، کلیات آن ثابت ماندهاست و تنظیمات ابتدایی آن اندکی تغییر کردهاند.
مفهوم Areas
Areas یکی از روشهای ساماندهی برنامههای بزرگ، به نواحی کوچکتری مانند قسمتهای مدیریتی، پشتیبانی از کاربران و غیره است. به این ترتیب میتوان کنترلرها، Viewها و مدلهای هر قسمت را از قسمتی دیگر، جدا کرد و مدیریت پروژه را ساده ...