TheBeerHouse网站项目学习笔记(2)----个性化管理
上篇讨论了换肤技术,这篇将继续讨论下一个知识点----个性化管理,即利用ASP.NET 2.0 内置的用户 个性化管理功能(必备文章讨论)将用户的各种个性信息存入自定义数据库,以达到个性信息的"记忆"功能, 让每个用户无论是匿名还是注册,在他们下次登录或匿名登录后仍然能得到自己上次的个性设置(比如网站 皮肤,页面布局,注册时的各种个人信息等). 这里的个性化管理还包括权限管理的说明(第3篇讨论),其技术基础请参看上述必备知识文章. 那么我们就继续展开讨论. 一. 数据讨论 确保此网站所用到的数据库是自定义的,而不是自动生成的,如下图: 确保此目录是空的,而且已经如 http://www.cnblogs.com/Rogerliu/archive/2008/08/30/1279847.html文章介绍过做过数据库迁移工 作了. 下面我们以一个现象出发讨论个性化管理.(注意:我们现在使用的示例代码是该网站配套书在Wrox网站 上提供的前五章的源代码,因此,我们看到的界面还比较单调,但不影响我们对下面功能的讨论) 做好了数据库迁移工作(如果需要的话)并在Web.Config文件中修改了数据库配置后,运行网站,如下两 幅图进行换肤前后的对比: 打开数据库,找到相应的数据库文件ASPNETDB,在此数据库中进行如下查询: select userid,username,isanonymous,lastactivitydate from aspnet_users order by lastactivitydate desc 得到如下结果: 发现此匿名用户最后活动的时间就是刚才登录后并更改皮肤的时间(发现总有八个小时的差距,时区关 系?有待考证),ASPNETD数据库中个性化设置相关表的说明,请查看如下文 章:http://www.cnblogs.com/Rogerliu/archive/2008/08/30/1279847.html, 因为 isanonymous=1 ,注意 此时用户名是系统自动分配的,所以我们此时运行的身份是匿名用户,当我们用超级用户/密码 (admin/admin)登录后,发现此时上述查询结果会变成如下图所示: 发现刚才匿名登录的用户如果注册成功后,会多了一个注册用户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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |