• 1401/05/13

افزودن به سبد خرید بدون نیاز به لاگین کردن :

سلام جناب اردوخانی.

میخواهم بدون اینکه کاربر لاگین کنه افزودن به سبد خرید رو بزنه و سبد خرید پر بشه. 

بعد اینکه ثبت نام یا لاگین کرد اون محصولی که در سبد خرید هستش برای کاربر ست بشه. 

ممنون میشم راهنمایی بفرمایید.

 

با تشکر

  • 1401/05/13
  • ساعت 09:55

بنده این کد رو نوشتم ولی خطا میده

 

public async Task<bool> AddOrderToNoneAuthenticatedUser(long userId)
        {
            var order = await _orderRepository
                .GetQuery()
                .AsQueryable()
                .FirstOrDefaultAsync(x => x.UserId == 0 && x.CreateDate.AddDays(2) >= DateTime.Now);

            if (order == null)
            {
                return false;
            }

            order.UserId = userId;
            _orderRepository.EditEntity(order);
            await _orderRepository.SaveChanges();

            return true;

        } ////// OrderService
        
        
        
        
        
        var openOrder = await _orderService.GetUserLatestOpenOrder(0);

                        if (openOrder != null)
                        {
                            await _orderService.AddOrderToNoneAuthenticatedUser(user.Id);
                        }
                        
                        //////// Account Controller --- Login Action
        

  • 1401/05/13
  • ساعت 09:57

سلام دوست من

اگر کاربر لاگین نباشه شما به id اون شخص دسترسی ندارین دوست من

ساختار کاملا تغییر میکنه برای این مورد و باید از local storage در سمت مرورگر استفاده کنین و هنگام لاگین کردن از local storage اطلاعات رو بگیرین و در دیتابیس ذخیره کنین


  • 1401/05/13
  • ساعت 10:29

استاد از لحاظ امنیتی کدومش بهتره؟ فکر کنم روشی که خودتون ارائه دادید بهتر باشه


  • 1401/05/15
  • ساعت 11:33

امنیتی خاصی در این مورد مطرح نیست دوست من. صرفا اگر کاربر مرورگرش رو تغییر بده دیگه نمیشه کاری کرد

این اطلاعات در مرورگر ذخیره میشن و بعد از اینکه کاربر لاگین کرد به سرور منتقل میشن برای ذخیره سازی


logo-samandehi