سلام جناب اردوخانی.
میخواهم بدون اینکه کاربر لاگین کنه افزودن به سبد خرید رو بزنه و سبد خرید پر بشه.
بعد اینکه ثبت نام یا لاگین کرد اون محصولی که در سبد خرید هستش برای کاربر ست بشه.
ممنون میشم راهنمایی بفرمایید.
با تشکر
بنده این کد رو نوشتم ولی خطا میده
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
سلام دوست من
اگر کاربر لاگین نباشه شما به id اون شخص دسترسی ندارین دوست من
ساختار کاملا تغییر میکنه برای این مورد و باید از local storage در سمت مرورگر استفاده کنین و هنگام لاگین کردن از local storage اطلاعات رو بگیرین و در دیتابیس ذخیره کنین
استاد از لحاظ امنیتی کدومش بهتره؟ فکر کنم روشی که خودتون ارائه دادید بهتر باشه
امنیتی خاصی در این مورد مطرح نیست دوست من. صرفا اگر کاربر مرورگرش رو تغییر بده دیگه نمیشه کاری کرد
این اطلاعات در مرورگر ذخیره میشن و بعد از اینکه کاربر لاگین کرد به سرور منتقل میشن برای ذخیره سازی