http://hi.baidu.com/cyisi/blog/item/03dd5bf3f045c82d730eec4d.html
第一步:确定商品数据库表。
第二步:配置Profile支持C:\Windows\Microsoft.NET\Framework\v2.0.5.0727\aspnet_regsql.exe
aspnet_regsql -exportsqlonly <filename>
这样子导出到一个文本文件,这里包含了建立Membership相关的表/存储过程/视图等的所有脚本。
如
aspnet_regsql -sqlexportonly c:\abc.txt -A all
http://topic.csdn.net/u/20091228/11/c270ad36-6069-4ca0-b8ec-2727374aacfb.html
第三步:创建商品列表实体类
第四步:建一个购物车实现类。这个类必须支持序列化(二进制)。利用哈希表来存储购物项。里面包含增加删除商品和统计方法。哈希表实例的Values方法可以获取购物车所有项。
第五步:用GridView绑定商品列表。
第六步:配置文件设置Profile.
<profile enabled="true" defaultProvider="SqlProvider">
<providers>
<add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="TestProfileConnectionString"/>
</providers>
<properties>
<!--type类名,允许匿名,二进制序列化,类映射-->
<add name="ShoppingCart" type="ShoppingCart" allowAnonymous="true" serializeAs="Binary"/>
</properties>
</profile>
第七步:在GrivdView添加按钮事件Profile.ShoppingCart.AddItem(id,name,price);
第八步:在购物车页面用GridView控件(有删除按钮)。数据源为哈希表实例的Values方法可以获取购物车所有项。
匿名迁移:
登录页面:登录事件
if (this.TextBox1.Text.Trim() == "chen" && this.TextBox2.Text.Trim() == "yisi")
{
//forms验证身份票据,这样就是合法用户。当匿名使用应用程序的用户登录时,可以使用 MigrateAnonymous 事件将配置文件属性值从匿名配置文件中复制到已验证身份的配置文件中。
FormsAuthentication.SetAuthCookie(this.TextBox1.Text.Trim(), false);
Response.Redirect("../ShoppingCarted.aspx");
}
MigrateAnonymous事件存在Global.asax当中//用户进行登录时会进行触发
protected void Profile_MigrateAnonymous(object s, ProfileMigrateEventArgs e)
{
ProfileCommon anonProfile = Profile.GetProfile(e.AnonymousID);
foreach (CartItem ci in anonProfile.ShoppingCart.CartItems)
{
Profile.ShoppingCart.AddCartItem(ci);//这样应该是重新实例化了
}
//注释:
profile基于cookie为基础来维持没有GUID,如果Cookie还在(基于Form验证),如果COOKIE不存在或者过期,GUID会重新生成,所以之前的记录是不存在的。如果在cookie有数据的情况下,进行登录,登录成功会把数据迁移到到登录用户,其实就是更新用户表中的用户名为(登录的用户名非GUID了)。
出错修改“
解决办法是网上找到的:执行C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regsql.exe(Framework下的版本目录可能稍有出入),按照窗口提示一路点击下一步到如下图所示窗口,在窗口下方的数据库下拉框中选择待配置的数据库进行配置,点击下一步,完成!