快捷搜索:

Profile 详解之匿名状态迁移至登录状态

首先照样来解释一下博文的标题意义吧,

作甚匿名状态,作甚登录状态,又作甚匿名状态迁移至登录状态?

匿名状态便是没有登录这个网站而对网站进行造访的状态,

而登录状态则是用户成功登录了网站,

而从匿名状态迁移至登录状态便是一个用户一开始并没有登录,

而因此匿名的身份证登录这个网站,而后浏览了一下子又想登岸来颁发篇博文,

这便是从匿名状态迁移至登录状态,

貌似这里没有什么好先容的呢?

不过,再请斟酌一个问题,便是比如说用户去购物吧,

用户购物一样平常都是在购物网站上先以匿名身份选摘要买的商品,

而后等选好了今后,用户便进行登岸,然后付款等等后续事情,

然则,这此中会有一个问题,便是用户以匿名身份选择的商品怎么迁移至登录状态呢?

也便因此匿名身份选择的商品,登录后还要保存这些商品来进行付款!!!

先来看一个单词吧----Migration,便是迁移的意思,大年夜伙先记着这个单词,

等下后面就会知道其用场了,

下面在先容 Demo 之前呢,照样先讲一下一个文件 Global.asax ,也便是全局利用法度榜样类,

您可以在这个文件中应用 Profile_MigrateAnonymous 全局事故

来造访 ProfileModule 类的 MigrateAnonymous 事故,

而当匿名应用利用法度榜样的用户进行登岸时,就会触发 Profile_MirateAnonymous 事故,

以是就可以应用 MigrateAnonymous 事故将设置设置设备摆设摆设文件 Profile 的属性值

从匿名 Profile 复制到已验证身份的用户的设置设置设备摆设摆设文件中去

这样便完成了匿名状态到登录状态信息的一个完备的迁移。

下面就来看一个 Demo 吧

http://www.w3.org/1999/xhtml">

选择头像

DropDownList ID="ddlImageName" runat="server" Width="150px" >

Label ID="lblSaveMsg" runat="server" Text="">

Button ID="btnSava" runat="server" OnClick="btnSava_Click"

Text="匿 名 保 存 Profile" />

Button ID="btnQuery" runat="server" Text="获 取 用 户 Profile"

onclick="btnQuery_Click" />

用户名

Label ID="lblName" runat="server" Text="">

住址

Label ID="lblAddress" runat="server" Text="">

电话

Label ID="lblPhone" runat="server" Text="">

星座

Label ID="lblConstellate" runat="server" Text="">

照片

Label ID="lblPhoto" runat="server" Text="">

然后还得开一下 Global.asax 中的 Profile_MigrateAnonymous 事故的定义

在这个事故中呢,完成了将信息从匿名用户的 Profile 中转存到了登录状态的 Profile 中,

同时也删除了这个匿名用户在数据表 aspnet_Profile 和 aspnet_Users 中的数据,

并且也清除了为这个匿名用户在客户端天生的 Cookie 文件

下面就来看演示了

首先,直接以匿名要领浏览这个 Demo

然后您打开您机械上存储 Cookie 的地方,您可以看到新建了一个 Cookie 文件

这个 Cookie 就是 ASP.NET 为这次浏览的匿名用户分配的 GUID 存储的位置,

然后您选择一个头像进行存储

此时再来看数据表 aspnet_Users

这里就可以看到在数据表中新增了一个匿名用户

然后再来看数据表 aspnet_Profiles

这里就可以知道刚刚添加的信息时添加给了匿名用户的

接下来就要进行登岸了

(以 ChengYan 进行登岸,

在这个登岸历程中会触发在 Global.asax 中定义的 Profile_MigrateAnonymous 事故,

以是一开始的匿名用户信息会在 aspnet_Uses 表和 aspnet_Profile 表中均删除

同时也会删除这个匿名用户在客户真个 Cookie)

登岸成功后,您再去看您客户机 Cookie 所在的位置,

刚才上面截图的那个 xiaozhen@localhost[1].txt 的 Cookie 文件便被删除了,

然后再来看数据表 aspnet_Users ,您可以发明此中刚才的那个匿名用户也被删除了,

再来看数据表 aspnet_Profile ,您会发明登录前的那个匿名用户的 Profile 也被删除了,

而发明有一个却增添了属性,也便是 ChengYan 这个用户,

其原先没有照片这个 Profile 属性的,当是登岸成功后,因为将匿名信息迁移了过来,

以是其又有了照片这个 Profile 属性

颠最后上面的演示,我想大年夜家也完备的看到了从匿名状态迁移到登录状态的全历程,

并且此中的一些要点,我也说得对照具体了,这篇博文的目的也就达到了!!!

转自:http://www.cnblogs.com/QinBaoBei/archive/2010/03/02/1676551.html

您可能还会对下面的文章感兴趣: