ショッピングカート付きのサイトを作りました。
私はcartItemsを持つテーブルを持っています: * [ItemId] * [CartId] * [Quantity] * [DateCreated] * [TeabagId]
このメソッドは何をすべきですか?
このメソッドは、現在のユーザー (ログインまたはログアウト) のカートを取得するために使用される ID を返します。ユーザーがログインしている場合は、ユーザー名を返します。ユーザーがログアウトしている場合は、ランダムな文字列を返します。
次の関数はカート ID を取得します
問題:
問題は、デバッガーが接続されていない場合、ログインおよびログアウト後にユーザー名が返されることです。
方法:
public string GetCartId()
{
HttpContext Context = HttpContext.Current;
if (Context.User.Identity.Name == null || Context.User.Identity.Name == "") // no user online
{
if (HttpContext.Current.Session[CartSessionKey] == null || HttpContext.Current.Session[CartSessionKey] == "")
{
Guid tempCartId = Guid.NewGuid();
HttpContext.Current.Session[CartSessionKey] = tempCartId.ToString();
return tempCartId.ToString();
}
else // sessie has cartId
{
return HttpContext.Current.Session[CartSessionKey].ToString();
}
}
else // User is online
{
return Membership.GetUser().UserName;
}
}