1

ショッピングカート付きのサイトを作りました。

私は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;
        }
    }
4

0 に答える 0