eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
نتیجه‌گیری این کنترلر به مدیریت صفحات اصلی سایت می‌پردازد. شامل اکشن‌هایی برای نمایش صفحه اصلی، صفحه حریم خصوصی و صفحه خطا می‌باشد. این کنترلر از سرویس‌های مختلف برای دریافت داده‌های مربوط به اسلایدرها، تصاویر صفحه اصلی و محصولات استفاده می‌کند و این داده‌ها را به ویو ارسال می‌کند تا به کاربر نمایش داده شوند.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
بیایید این بخش از کد ویو Razor برای صفحه اصلی را بررسی کنیم و توضیح دهیم که هر بخش آن چه وظیفه‌ای دارد. توضیح کد ۱. بخش اسلایدر (slider-box) کد: html <div class="slider-box"> <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="" data-slide-to="0" class="active"></li> @for (int i = 1; i <= Model.Sliders.Count - 1; i++) { <li data-target="" data-slide-to="@i" ></li> } </ol> <div class="carousel-inner"> @foreach (var item in Model.Sliders) { if (_sliderCount == 1) { <div class="carousel-item active"> <a href="@item.Link"> <img src="~/@item.Src" class="d-block w-100" alt="..."> </a> </div> } else { <div class="carousel-item"> <a href="@item.Link"> <img src="~/@item.Src" class="d-block w-100" alt="..."> </a> </div> } _sliderCount++; } </div> <a class="carousel-control-prev" href="" role="button" data-slide="prev"> <span class="fa fa-angle-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="" role="button" data-slide="next"> <span class="fa fa-angle-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> </div> توضیح: ساختار کلی اسلایدر: استفاده از کلاس‌های carousel و carousel slide برای ایجاد یک اسلایدر با استفاده از Bootstrap. carousel-indicators: نمایش نقاط نمایانگر که نشان‌دهنده تعداد اسلایدها هستند. لیست نقاط: استفاده از یک حلقه for برای ایجاد نقاط به ازای تعداد اسلایدها. carousel-inner: شامل تمام اسلایدها. @foreach: حلقه‌ای برای ایجاد هر اسلاید. بررسی اولین اسلاید: اگر اولین اسلاید است، کلاس active به آن اضافه می‌شود. تصویر اسلاید: نمایش تصویر هر اسلاید با استفاده از مسیر Src و لینک مرتبط با آن. ۲. نمایش تصاویر تبلیغاتی کد: html <div class="col-lg-3 col-md-4 col-xs-12 pl mt-1"> <div class="adplacement-container-column"> <a href="#" class="adplacement-item"> <div class="adplacement-sponsored-box"> <img src="~/@Model.PageImages.Where(p => p.ImageLocation == ImageLocation.L1)?.FirstOrDefault()?.Src ?? '' "> </div> </a> <a href="#" class="adplacement-item"> <div class="adplacement-sponsored-box"> <img src="~/@Model.PageImages.Where(p => p.ImageLocation == ImageLocation.L2)?.FirstOrDefault()?.Src ?? ''"> </div> </a> </div> </div> توضیح: نمایش تصاویر تبلیغاتی در مکان‌های L1 و L2: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصاویری که محل قرارگیری آن‌ها ImageLocation.L1 و ImageLocation.L2 باشد. اولین تصویر مناسب: استفاده از FirstOrDefault برای انتخاب اولین تصویر که معیار را برآورده می‌کند. مسیر تصویر: استفاده از خاصیت Src برای نمایش تصویر. ۳. بنر تصویر مرکز تمام صفحه کد: html <div class="-container-column mt-4"> <a href="#" class="adplacement-item img-banner"> <div class="adplacement-sponsored-box"> <img src="~/@Model.PageImages.Where(p => p.ImageLocation == ImageLocation.R1)?.FirstOrDefault()?.Src ?? ''"> </div> </a> </div> توضیح: نمایش تصویر در مکان R1: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصویری که محل قرارگیری آن ImageLocation.R1 باشد. اولین تصویر مناسب: استفاده از FirstOrDefault برای انتخاب اولین تصویر که معیار را برآورده می‌کند. مسیر تصویر: استفاده از خاصیت Src برای نمایش تصویر.
پروژه ASP.Net Core MVC (وب و سی شارپ)
در این بخش صفحه اصلی پویا
۴. اسلایدر دوربین عکاسی کد: html <div class="one-slider"> <h4>دوربین عکاسی</h4> <div class="owl-carousel owl-theme ov1"> @foreach (var item in Model.PageImages.Where(p => p.ImageLocation == ImageLocation.G1).ToList()) { <div class="item"> <figure> <a href=""><img src="~/@item.Src" class="w-100" /></a> </figure> <h5>Adata d5-32G</h5> <span>112.000 تومان</span> </div> } </div> </div> توضیح: اسلایدر محصولات دوربین عکاسی: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصاویری که محل قرارگیری آن‌ها ImageLocation.G1 باشد. حلقه @foreach: ایجاد اسلایدها به ازای هر تصویر فیلتر شده. نمایش تصویر: استفاده از خاصیت Src برای نمایش تصویر. نمایش نام و قیمت محصول: نمایش نمونه‌ای از نام و قیمت محصول به صورت استاتیک. ۵. بنر تصویر تمام صفحه مرکزی کد: html <div class="col-12"> <a href="#" class="adplacement-item mb-4"> <div class="adplacement-sponsored_box"> <img src="~/@Model.PageImages.Where(p => p.ImageLocation == ImageLocation.CenterFullScreen)?.FirstOrDefault()?.Src ?? ''"> </div> </a> </div> توضیح: نمایش تصویر در مکان CenterFullScreen: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصویری که محل قرارگیری آن ImageLocation.CenterFullScreen باشد. اولین تصویر مناسب: استفاده از FirstOrDefault برای انتخاب اولین تصویر که معیار را برآورده می‌کند. مسیر تصویر: استفاده از خاصیت Src برای نمایش تصویر. ۶. اسلایدر محصولات موبایل و تبلت کد: html <div class="two-slider"> <h4>موبایل و تبلت</h4> <div class="owl-carousel owl-theme ov2"> @foreach (var item in Model.PageImages.Where(p => p.ImageLocation == ImageLocation.G2).ToList()) { <div class="item"> <figure> <a href=""><img src="~/@item.Src" class="w-100" /></a> </figure> <h5>Adata d5-32G</h5> <span>112.000 تومان</span> </div> } </div> </div> توضیح: اسلایدر محصولات موبایل و تبلت: فیلتر کردن تصاویر: استفاده از LINQ برای انتخاب تصاویری که محل قرارگیری آن‌ها ImageLocation.G2 باشد. حلقه @foreach: ایجاد اسلایدها به ازای هر تصویر فیلتر شده. نمایش تصویر: استفاده از خاصیت Src برای نمایش تصویر. نمایش نام و قیمت محصول: نمایش نمونه‌ای از نام و قیمت محصول به صورت استاتیک. نتیجه‌گیری این کد ویو برای صفحه اصلی شامل نمایش اسلایدر اصلی، تصاویر تبلیغاتی و بنرها، و اسلایدرهای محصولات مختلف است. از کلاس‌های Bootstrap و Owl Carousel برای استایل‌دهی و ایجاد کاروسل‌ها استفاده می‌کند. داده‌ها از مدل ViewModel دریافت می‌شوند و به صورت داینامیک در صفحه نمایش داده می‌شوند.
Test_Store 14.zip
حجم: 56.5M
ادامه درس بخش صفحه اصلی پویا که خودم اعتبار سنجی کردم بدونه کمک استاد که دیگران نگویند پروژه خطا میده
کوکی cookie سلام! بیایید ابتدا توضیح دهیم که کوکی چیست و سپس نحوه استفاده از کوکی‌ها در ASP.NET را بررسی کنیم. کوکی چیست؟ کوکی یک فایل کوچک متنی است که توسط وب‌سایت‌ها در مرورگر کاربر ذخیره می‌شود. این فایل‌ها شامل اطلاعاتی مانند تنظیمات کاربر، وضعیت نشست (session)، و شناسه‌های کاربری هستند. کوکی‌ها برای ذخیره‌سازی اطلاعات کاربر بین درخواست‌های مختلف به سرور استفاده می‌شوند. نحوه استفاده از کوکی‌ها در ASP.NET ۱. ایجاد و تنظیم کوکی برای ایجاد و تنظیم یک کوکی در ASP.NET، می‌توان از شیء HttpCookie استفاده کرد و سپس آن را به پاسخ HTTP اضافه کرد. نمونه کد: csharp public ActionResult SetCookie() { HttpCookie cookie = new HttpCookie("UserPreferences"); cookie["Theme"] = "Dark"; cookie["Font"] = "Arial"; cookie.Expires = DateTime.Now.AddDays(7); // زمان انقضای کوکی (مثلاً ۷ روز) Response.Cookies.Add(cookie); return RedirectToAction("Index"); } ۲. خواندن کوکی برای خواندن یک کوکی در ASP.NET، می‌توان از شیء HttpRequest و مجموعه Request.Cookies استفاده کرد. نمونه کد: csharp public ActionResult GetCookie() { HttpCookie cookie = Request.Cookies["UserPreferences"]; if (cookie != null) { string theme = cookie["Theme"]; string font = cookie["Font"]; ViewBag.Theme = theme; ViewBag.Font = font; } return View(); } ۳. حذف کوکی برای حذف یک کوکی، باید تاریخ انقضای کوکی را به گذشته تنظیم کنید. این کار باعث می‌شود که مرورگر کوکی را حذف کند. نمونه کد: csharp public ActionResult RemoveCookie() { if (Request.Cookies["UserPreferences"] != null) { HttpCookie cookie = new HttpCookie("UserPreferences"); cookie.Expires = DateTime.Now.AddDays(-1); // تاریخ انقضا به گذشته تنظیم شده Response.Cookies.Add(cookie); } return RedirectToAction("Index"); } گزینه‌های کوکی (Cookie Options) هنگام ایجاد یک کوکی، می‌توان گزینه‌های مختلفی را تنظیم کرد مانند زمان انقضا، دامنه، مسیر، و امنیت. نمونه کد با گزینه‌های کوکی: csharp public ActionResult SetCookieWithOptions() { HttpCookie cookie = new HttpCookie("UserPreferences") { ["Theme"] = "Dark", ["Font"] = "Arial", Expires = DateTime.Now.AddDays(7), // زمان انقضای کوکی (مثلاً ۷ روز) Path = "/", // مسیر کوکی Domain = "example.com", // دامنه کوکی Secure = true, // فقط از طریق HTTPS HttpOnly = true // فقط از طریق HTTP، دسترسی جاوااسکریپت محدود }; Response.Cookies.Add(cookie); return RedirectToAction("Index"); } نتیجه‌گیری با استفاده از این روش‌ها، می‌توانید کوکی‌ها را در ASP.NET مدیریت کنید. کوکی‌ها ابزاری قوی برای ذخیره اطلاعات کاربر در مرورگر هستند و می‌توانند تجربه کاربری بهتری را فراهم کنند.
اگر به یک کوکی تاریخ انقضا ندهید، به طور پیش‌فرض به عنوان یک کوکی نشست (session cookie) در نظر گرفته می‌شود. این بدان معناست که کوکی تا زمانی که مرورگر باز باشد معتبر خواهد بود و هنگامی که مرورگر بسته شود، کوکی به طور خودکار حذف می‌شود. نمونه کد: csharp public ActionResult SetCookieWithoutExpiration() { HttpCookie cookie = new HttpCookie("UserPreferences"); cookie["Theme"] = "Dark"; cookie["Font"] = "Arial"; // تاریخ انقضا تنظیم نمی‌شود، بنابراین به عنوان کوکی نشست در نظر گرفته می‌شود Response.Cookies.Add(cookie); return RedirectToAction("Index"); } در این مثال، کوکی‌ای که ایجاد شده است تا زمانی که مرورگر باز باشد معتبر خواهد بود و پس از بستن مرورگر، کوکی حذف می‌شود.
Test_Store 15.zip
حجم: 56.9M
افزودن به سبد خرید قسمت اول
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
این کد مربوط به سرویس سبد خرید (CartService) در یک فروشگاه اینترنتی است. سرویس سبد خرید شامل عملکردهایی برای اضافه کردن محصول به سبد خرید، حذف محصول از سبد خرید، دریافت سبد خرید کاربر، افزایش تعداد یک محصول در سبد خرید و کاهش تعداد یک محصول در سبد خرید می‌باشد. بیایید نگاهی دقیق‌تر به عملکردهای مختلف این سرویس بیندازیم: تعریف Interface (رابط) ICartService csharp public interface ICartService { ResultDto AddToCart(long ProductId, Guid BrowserId); ResultDto RemoveFromCart(long ProductId, Guid BrowserId); ResultDto<CartDto> GetMyCart(Guid BrowserId); ResultDto Add(long CartItemId); ResultDto LowOff(long CartItemId); } کلاس CartService سازنده و زمینه‌های کلاس csharp public class CartService : ICartService { private readonly IDataBaseContext _context; public CartService(IDataBaseContext context) { _context = context; } IDataBaseContext از پایگاه داده استفاده می‌کند و عملیات‌های داده‌ای را فراهم می‌کند. سازنده کلاس، نمونه‌ای از IDataBaseContext را دریافت کرده و آن را در متغیر _context ذخیره می‌کند. افزودن محصول به سبد خرید csharp public ResultDto AddToCart(long ProductId, Guid BrowserId) { var cart = _context.Carts.Where(p => p.BrowserId == BrowserId && p.Finished == false).FirstOrDefault(); if (cart == null) { Cart newCart = new Cart() { Finished = false, BrowserId = BrowserId, }; _context.Carts.Add(newCart); _context.SaveChanges(); cart = newCart; } var product = _context.Products.Find(ProductId); var cartItem = _context.CartItems.Where(p => p.ProductId == ProductId && p.CartId == cart.Id).FirstOrDefault(); if (cartItem != null) { cartItem.Count++; } else { CartItem newCartItem = new CartItem() { Cart = cart, Count = 1, Price = product.Price, Product = product, }; _context.CartItems.Add(newCartItem); _context.SaveChanges(); } return new ResultDto() { IsSuccess = true, Message = $"محصول {product.Name} با موفقیت به سبد خرید شما اضافه شد", }; } ابتدا بررسی می‌شود که آیا سبد خریدی برای کاربر موجود است یا نه. اگر سبد خریدی وجود ندارد، یک سبد خرید جدید ایجاد می‌شود. سپس محصول مورد نظر در پایگاه داده جستجو می‌شود. اگر محصولی با شناسه مورد نظر در سبد خرید وجود داشته باشد، تعداد آن افزایش می‌یابد. در غیر این صورت، محصول جدیدی به سبد خرید اضافه می‌شود. افزایش تعداد یک محصول در سبد خرید csharp public ResultDto Add(long CartItemId) { var cartItem = _context.CartItems.Find(CartItemId); cartItem.Count++; _context.SaveChanges(); return new ResultDto() { IsSuccess = true, }; } محصول مورد نظر در سبد خرید بر اساس CartItemId جستجو می‌شود و تعداد آن افزایش می‌یابد. کاهش تعداد یک محصول در سبد خرید csharp public ResultDto LowOff(long CartItemId) { var cartItem = _context.CartItems.Find(CartItemId); if (cartItem.Count <= 1) { return new ResultDto() { IsSuccess = false, }; } cartItem.Count--; _context.SaveChanges(); return new ResultDto() { IsSuccess = true, }; } محصول مورد نظر در سبد خرید بر اساس CartItemId جستجو می‌شود و تعداد آن کاهش می‌یابد. اگر تعداد محصول کمتر یا برابر با ۱ باشد، عملیات کاهش ناموفق خواهد بود.
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
دریافت سبد خرید کاربر csharp public ResultDto<CartDto> GetMyCart(Guid BrowserId) { var cart = _context.Carts .Include(p => p.CartItems) .ThenInclude(p => p.Product) .ThenInclude(p => p.ProductImages) .Where(p => p.BrowserId == BrowserId && p.Finished == false) .OrderByDescending(p => p.Id) .FirstOrDefault(); return new ResultDto<CartDto>() { Data = new CartDto() { CartItems = cart.CartItems.Select(p => new CartItemDto { Count = p.Count, Price = p.Price, Product = p.Product.Name, Id = p.Id, Images = p.Product?.ProductImages?.FirstOrDefault()?.Src ?? "", }).ToList(), }, IsSuccess = true, }; } سبد خرید کاربر بر اساس BrowserId جستجو می‌شود و لیستی از محصولات موجود در سبد خرید همراه با اطلاعات آن‌ها برگردانده می‌شود. حذف محصول از سبد خرید csharp public ResultDto RemoveFromCart(long ProductId, Guid BrowserId) { var cartitem = _context.CartItems.Where(p => p.Cart.BrowserId == BrowserId).FirstOrDefault(); if (cartitem != null) { cartitem.IsRemoved = true; cartitem.RemoveTime = DateTime.Now; _context.SaveChanges(); return new ResultDto { IsSuccess = true, Message = "محصول از سبد خرید شما حذف شد" }; } else { return new ResultDto { IsSuccess = false, Message = "محصول یافت نشد" }; } } محصول مورد نظر بر اساس ProductId و BrowserId جستجو می‌شود و سپس از سبد خرید حذف می‌شود. کلاس‌های DTO CartDto و CartItemDto این کلاس‌ها برای انتقال داده‌های سبد خرید و آیتم‌های سبد خرید استفاده می‌شوند. csharp public class CartDto { public List<CartItemDto> CartItems { get; set; } } public class CartItemDto { public long Id { get; set; } public string Product { get; set; } public string Images { get; set; } public int Count { get; set; } public int Price { get; set; } } CartDto شامل لیستی از CartItemDto است که اطلاعات مربوط به محصولات موجود در سبد خرید را نگهداری می‌کند. نتیجه‌گیری این کد شامل عملیاتی برای مدیریت سبد خرید در یک فروشگاه اینترنتی است. هر عملیاتی مانند افزودن محصول به سبد خرید، حذف محصول، افزایش و کاهش تعداد محصول و دریافت سبد خرید کاربر به طور کامل پیاده‌سازی شده است.
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
بیایید کد را تحلیل کنیم و توضیحات هر بخش را مرور کنیم. این کد در namespace Test_Store.Domain.Entities.Carts قرار دارد و شامل دو کلاس Cart و CartItem است که سبد خرید و آیتم‌های سبد خرید را در یک فروشگاه اینترنتی مدیریت می‌کنند. کلاس Cart این کلاس نمایانگر یک سبد خرید است. csharp public class Cart : BaseEntity { public virtual User User { get; set; } public long? UserId { get; set; } public Guid BrowserId { get; set; } public bool Finished { get; set; } public ICollection<CartItem> CartItems { get; set; } } User (کاربر): این ویژگی به کاربر مرتبط با سبد خرید اشاره دارد. این رابطه به صورت مجازی (virtual) تعریف شده است، که به Entity Framework اجازه می‌دهد تا رابطه را به صورت lazy load مدیریت کند. UserId: شناسه کاربر مرتبط با سبد خرید. این مقدار می‌تواند null باشد، به این معنا که ممکن است سبد خرید بدون کاربر (مثلاً برای مهمان‌ها) ایجاد شود. BrowserId (شناسه مرورگر): یک GUID که به مرورگر کاربر اختصاص داده شده است. این ویژگی می‌تواند برای پیگیری سبد خرید کاربر حتی بدون ورود به سیستم استفاده شود. Finished (پایان یافته): یک مقدار بولی که نشان می‌دهد آیا سبد خرید کامل شده است (مثلاً خرید انجام شده است) یا خیر. CartItems (آیتم‌های سبد خرید): یک مجموعه از آیتم‌های سبد خرید که در این سبد خرید وجود دارند. این رابطه به صورت یک به چند تعریف شده است، یعنی یک سبد خرید می‌تواند چندین آیتم سبد خرید داشته باشد. کلاس CartItem این کلاس نمایانگر یک آیتم در سبد خرید است. csharp public class CartItem : BaseEntity { public virtual Product Product { get; set; } public long ProductId { get; set; } public int Count { get; set; } public int Price { get; set; } public virtual Cart Cart { get; set; } public long CartId { get; set; } } Product (محصول): این ویژگی به محصول مرتبط با آیتم سبد خرید اشاره دارد. این رابطه نیز به صورت مجازی (virtual) تعریف شده است تا Entity Framework بتواند به صورت lazy load این رابطه را مدیریت کند. ProductId: شناسه محصول مرتبط با آیتم سبد خرید. Count (تعداد): تعداد محصول در این آیتم سبد خرید. این مقدار نشان می‌دهد که چند واحد از محصول در سبد خرید قرار دارد. Price (قیمت): قیمت محصول در زمان اضافه شدن به سبد خرید. Cart (سبد خرید): این ویژگی به سبد خرید مرتبط با این آیتم اشاره دارد. این رابطه به صورت مجازی (virtual) تعریف شده است. CartId: شناسه سبد خرید مرتبط با این آیتم. نتیجه‌گیری این کلاس‌ها به همراه ویژگی‌هایشان، ساختار داده‌ای سبد خرید و آیتم‌های مرتبط با آن را در یک فروشگاه اینترنتی تعریف می‌کنند. با استفاده از این کلاس‌ها می‌توان سبد خرید کاربران را مدیریت کرد، آیتم‌ها را به سبد خرید اضافه کرد، تعداد آیتم‌ها را تغییر داد و سبد خرید را نهایی کرد.
پروژه ASP.Net Core MVC (وب و سی شارپ)
افزودن به سبد خرید قسمت اول
این کد مربوط به یک کلاس به نام CookiesManeger است که در namespace EndPoint.Site.Utilities قرار دارد. این کلاس شامل متدهایی برای مدیریت کوکی‌ها در ASP.NET Core است. بیایید هر متد را به صورت جداگانه توضیح دهیم. کلاس CookiesManeger متد Add این متد برای افزودن یک کوکی جدید به پاسخ HTTP استفاده می‌شود. csharp public void Add(HttpContext context, string token, string value) { context.Response.Cookies.Append(token, value, getCookieOptions(context)); } پارامترها: HttpContext context: زمینه درخواست HTTP. string token: نام کوکی. string value: مقدار کوکی. عملکرد: کوکی‌ای با نام token و مقدار value به پاسخ HTTP اضافه می‌کند. تنظیمات کوکی از متد getCookieOptions گرفته می‌شود. متد Contains این متد بررسی می‌کند که آیا کوکی با نام مشخصی در درخواست HTTP وجود دارد یا خیر. csharp public bool Contains(HttpContext context, string token) { return context.Request.Cookies.ContainsKey(token); } پارامترها: HttpContext context: زمینه درخواست HTTP. string token: نام کوکی. عملکرد: بررسی می‌کند که آیا کوکی با نام token در درخواست HTTP وجود دارد یا خیر و نتیجه را به صورت بولی برمی‌گرداند. متد GetValue این متد مقدار کوکی با نام مشخص را از درخواست HTTP برمی‌گرداند. csharp public string GetValue(HttpContext context, string token) { string cookieValue; if (!context.Request.Cookies.TryGetValue(token, out cookieValue)) { return null; } return cookieValue; } پارامترها: HttpContext context: زمینه درخواست HTTP. string token: نام کوکی. عملکرد: تلاش می‌کند مقدار کوکی با نام token را از درخواست HTTP دریافت کند. اگر کوکی موجود باشد، مقدار آن را برمی‌گرداند؛ در غیر این صورت، null برمی‌گرداند. متد Remove این متد کوکی با نام مشخص را از درخواست HTTP حذف می‌کند. csharp public void Remove(HttpContext context, string token) { if (context.Request.Cookies.ContainsKey(token)) { context.Response.Cookies.Delete(token); } } پارامترها: HttpContext context: زمینه درخواست HTTP. string token: نام کوکی. عملکرد: بررسی می‌کند که آیا کوکی با نام token در درخواست HTTP وجود دارد یا خیر. اگر کوکی موجود باشد، آن را حذف می‌کند. متد GetBrowserId این متد شناسه مرورگر (BrowserId) را دریافت می‌کند. اگر شناسه مرورگر وجود نداشته باشد، یک شناسه جدید ایجاد کرده و آن را به کوکی اضافه می‌کند. csharp public Guid GetBrowserId(HttpContext context) { string browserId = GetValue(context, "BowserId"); if (browserId == null) { string value = Guid.NewGuid().ToString(); Add(context, "BowserId", value); browserId = value; } Guid guidBowser; Guid.TryParse(browserId, out guidBowser); return guidBowser; } پارامترها: HttpContext context: زمینه درخواست HTTP. عملکرد: تلاش می‌کند مقدار کوکی BowserId را دریافت کند. اگر کوکی موجود نباشد، یک شناسه جدید ایجاد کرده و آن را به کوکی اضافه می‌کند. سپس شناسه مرورگر را به صورت Guid برمی‌گرداند. متد getCookieOptions این متد تنظیمات کوکی را برای افزودن به پاسخ HTTP ایجاد می‌کند. csharp private CookieOptions getCookieOptions(HttpContext context) { return new CookieOptions { HttpOnly = true, Path = context.Request.PathBase.HasValue ? context.Request.PathBase.ToString() : "/", Secure = context.Request.IsHttps, Expires = DateTime.Now.AddDays(100), }; } پارامترها: HttpContext context: زمینه درخواست HTTP. عملکرد: یک شیء CookieOptions جدید ایجاد می‌کند با تنظیمات زیر: HttpOnly: فقط از طریق HTTP قابل دسترسی باشد، نه از طریق جاوااسکریپت. Path: مسیر کوکی. Secure: کوکی فقط در درخواست‌های HTTPS ارسال شود. Expires: تاریخ انقضای کوکی (100 روز از تاریخ فعلی). نتیجه‌گیری این کلاس ابزاری را فراهم می‌کند برای مدیریت کوکی‌ها در ASP.NET Core، از جمله افزودن، حذف، بررسی وجود، و دریافت مقدار کوکی‌ها. این ابزار به شما امکان می‌دهد که به راحتی کوکی‌ها را در برنامه وب خود مدیریت کنید.