快速业务通道

TheBeerHouse网站项目学习笔记(2)----个性化管理

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

上篇讨论了换肤技术,这篇将继续讨论下一个知识点----个性化管理,即利用ASP.NET 2.0 内置的用户 个性化管理功能(必备文章讨论)将用户的各种个性信息存入自定义数据库,以达到个性信息的"记忆"功能, 让每个用户无论是匿名还是注册,在他们下次登录或匿名登录后仍然能得到自己上次的个性设置(比如网站 皮肤,页面布局,注册时的各种个人信息等).

这里的个性化管理还包括权限管理的说明(第3篇讨论),其技术基础请参看上述必备知识文章.

那么我们就继续展开讨论.

一. 数据讨论

确保此网站所用到的数据库是自定义的,而不是自动生成的,如下图:

TheBeerHouse网站项目学习笔记(2)----个性化管理

确保此目录是空的,而且已经如

http://www.cnblogs.com/Rogerliu/archive/2008/08/30/1279847.html文章介绍过做过数据库迁移工 作了.

下面我们以一个现象出发讨论个性化管理.(注意:我们现在使用的示例代码是该网站配套书在Wrox网站 上提供的前五章的源代码,因此,我们看到的界面还比较单调,但不影响我们对下面功能的讨论)

做好了数据库迁移工作(如果需要的话)并在Web.Config文件中修改了数据库配置后,运行网站,如下两 幅图进行换肤前后的对比:

TheBeerHouse网站项目学习笔记(2)----个性化管理

TheBeerHouse网站项目学习笔记(2)----个性化管理

打开数据库,找到相应的数据库文件ASPNETDB,在此数据库中进行如下查询:

select userid,username,isanonymous,lastactivitydate
from aspnet_users
order by lastactivitydate desc

得到如下结果:

TheBeerHouse网站项目学习笔记(2)----个性化管理

发现此匿名用户最后活动的时间就是刚才登录后并更改皮肤的时间(发现总有八个小时的差距,时区关 系?有待考证),ASPNETD数据库中个性化设置相关表的说明,请查看如下文 章:http://www.cnblogs.com/Rogerliu/archive/2008/08/30/1279847.html, 因为 isanonymous=1 ,注意 此时用户名是系统自动分配的,所以我们此时运行的身份是匿名用户,当我们用超级用户/密码 (admin/admin)登录后,发现此时上述查询结果会变成如下图所示:

TheBeerHouse网站项目学习笔记(2)----个性化管理

TheBeerHouse网站项目学习笔记(2)----个性化管理

发现刚才匿名登录的用户如果注册成功后,会多了一个注册用户Admin,最后活动时间为登录时间,这之 间的关系已经在匿名用户迁移相关文章中介绍过了,这里不再强调了.

那么上述现象就是:如果匿名用户登录后,做的任何个性化设置(例如换肤),都会在数据库中得到记录, 以便在下次登录后去加载上次"记忆"的个性设置,得到上次自己配置的个性皮肤,即使上次是匿名登录,这 正是各大商业网站匿名购物车记录的原理.既然匿名用户可以,那么注册用户当然也是可以的.

其实这些技术在匿名用户迁移的两篇文章中都详细介绍了,这里就不再强调了,可能我们感到理解比较 困难的地方就是BasePage.cs类中如下语句的作用:

this.Theme = (HttpContext.Current.Profile as ProfileCommon).Preferences.Theme;

也正是这条语句加载了上次存入的个性设置,那么关键就是 Profile类(必备文章介绍过) 的作用,谈到 这个类就进入如下的讨论,先从Web.Config开始讨论.

二.Web.Config中有关个性化设置节的讨论

1. <configSections> 和 <theBeerHouse> 配置节说明

这两个配置节关系比较紧密,所以放到一起讲解.

               <configSections>
                   <section name="theBeerHouse" 

type="MB.TheBeerHouse.TheBeerHouseSection, __code"/>
               </configSections>

关于ConfigSections配置节的详细说明请参考如下地址:http://msdn.microsoft.com/zh- cn/library/ms228256(VS.80).aspx

这个配置节有三个属性,其中theBeerHouse直接决定下面<theBeerHouse>配置节的名称, MB.TheBeerHouse.TheBeerHouseSection 映射到ConfigSection.cs 这个类文件中的TheBeerHouseSection 类,查看这个文件的命名空间,就可以知道为什么可以这么映

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号