如何在asp.net中的一段时间后自动清除购物车

时间:2013-10-23 07:12:59

标签: c# asp.net sql-server

我创建了一个e-commerece网站。我的问题是,我想在认证期后自行清理购物车,如果用户在添加购物车中的商品后离开了网站,无论他是否已登录。

我的Global.ascx代码是:

void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs e)
{
    ProfileCommon anonymousProfile = Profile.GetProfile(e.AnonymousID);
    if (anonymousProfile.SCart != null)
    {
        if (Profile.SCart == null)
            Profile.SCart = new ShoppingCartExample.Cart();

        Profile.SCart.Items.AddRange(anonymousProfile.SCart.Items);

        anonymousProfile.SCart = null;
    }

    ProfileManager.DeleteProfile(e.AnonymousID);
    AnonymousIdentificationModule.ClearAnonymousIdentifier();
}

但我不知道该怎么做。请帮我。 感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用System.Web.Caching.Cache来缓存购物车。您可以使用Absolute或Sliding expiration来控制购物车在缓存中的时间段。

使用缓存,只需检索购物车,如果返回null,则缓存已过期(表示已清除购物车)。

答案 1 :(得分:0)

配置文件用于跨会话或跨登录持久保存数据。

您应该使用会话来存储此用户的购物车信息 - http://msdn.microsoft.com/en-us/library/ms178581.aspx

会话是一段临时信息存储,存在一段时间。会话自动失效;购物车会在一段时间后被清除。

会话可以存储您需要的任何信息,但不限于登录或身份验证信息。

Session["ShoppingCart"] = new ShoppingCartExample.Cart();