我创建了一个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();
}
但我不知道该怎么做。请帮我。 感谢。
答案 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();