BK

我是BK,不断成长,不愿辜负任何对我保有期盼的人...
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

asp.net 2.0教程 个性化用户配置

Posted on 2007-10-08 14:45  blue1000  阅读(666)  评论(0编辑  收藏  举报

尊重作者,请保留 www.it55.com 链接字样。

本节一起学习Asp.net 2.0的个性化服务解决技术框架:个性化用户配置。
什么是个性化用户配置呢?以下是引自网上Daniel Pang朋友的讲述:

存储和访问用户配置数据一直是开发人员关注的热点。在ASP.NET 1.x时代,实现这一功能主要通过Session、Application等对象或者采用数据库存储的方法。这两种方法都有着本身不可克服的缺点。例如,使用前者容易发生数据丢失的情况,而使用后者比较繁琐,例如,需要自行设计实现数据库及访问数据的代码。为了解决以上问题,ASP.NET 2.0新增了个性化用户配置功能。
个性化用户配置功能主要用于存储单个用户配置数据,这些数据可以是简单数据类型,也可以是复杂数据类型,甚至自定义对象等。同时,单个用户既可以是匿名用户,也可以是注册用户。默认情况下,所有用户配置数据都存储在SQL Server数据库中,并且无需自行创建和维护该数据库,这些工作都由ASP.NET 2.0自动完成。个性化用户配置功能还支持从应用程序中任何位置访问的多种强类型API,以方便存储、显示和管理用户配置信息。使用个性化用户配置功能非常简单。首先,在Web.config文件中定义配置信息名称、数据类型等,然后,调用与用户配置功能有关的强类型API,例如,Profile实现对用户配置信息的存储、访问和管理等应用。

开发环境要求:visual studio 2005 + SQL Server 2005
如果你的数据库不是SQL Server 2005,请先根据如下教程进行环境配置:
http://www.itgao.com/html/2007-05/45481.html
程序目标:记录用户个性化数据(本例以匿名用户为例)

第一步进行web.config配置,启用和定义为用户存储和跟踪的配置信息。

<system.web>
    <profile>
      <properties>
        <add name="Name" allowAnonymous="true" />
        <add name="LastSubmit" type="System.DateTime" allowAnonymous="true"/>
        <group name="Address">
          <add name="City"  allowAnonymous="true"/>
          <add name="PostalCode"  allowAnonymous="true"/>
        </group>
      </properties>
  </profile>
</system.web>

上述配置定义了一个Name属性和Address组属性,而Address组属性里又包含了City和PostalCode属性,默认这些属性值都是string类型,当然我们也可以通过type="值类型"的方式显式规定其类型。allowAnonymous="true"规定了该配置支持匿名用户。

第二步配置SQL Server 数据库配置。
默认情况下,程序第一次执行该配置时会自动创建一个SQL Server 2005 Express (visual studio 2005安装时默认附带)的特定数据库实例。该数据库实例存放于应用程序根目录下的App_Data文件夹中,名字是ASPNETDB.MDF,它默认包含了存储用户配置信息的数据表和其他与用户配置相关的对象等。
所以,如果你使用的是SQL Server 2005的话,这一步可以省略。如果不是,请参考: http://www.itgao.com/html/2007-05/45481.html

第三步程序实现。
.aspx页面部分代码:

    <form id="form1" runat="server">
        <div>
            <fieldset style="width: 300px">
                <legend class="mainTitle">实现匿名用户个性化用户配置</legend>
                <br />
                <table border="0" width="90%" class="commonText" align="center" cellpadding="5">
                    <tr>
                        <td>
                            用户姓名:</td>
                        <td>
                            <asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
                    </tr>#p#分页标题#e#
                    <tr>
                        <td>
                            所在国家:</td>
                        <td>
                            <asp:TextBox ID="txtCity" runat="server"></asp:TextBox></td>
                    </tr>
                    <tr>
                        <td>
                            邮政编码:</td>
                        <td>
                            <asp:TextBox ID="txtPostalCode" runat="server"></asp:TextBox></td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                            <asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" />
                        </td>
                    </tr>
                </table>
            </fieldset>
        </div>
    </form>

后台.cs文件代码:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //显示用户配置信息
            DisplayProfileInfo();
        }
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        //保存用户配置信息到Profile属性中
        Profile.Name = txtName.Text;
        Profile.Address.City = txtCity.Text;
        Profile.Address.PostalCode = txtPostalCode.Text;
        //显示用户配置信息
        DisplayProfileInfo();
    }
    private void DisplayProfileInfo()
    {
        //从Profile属性中获取数据并赋值给服务器控件           
        txtName.Text = Profile.Name;
        txtCity.Text = Profile.Address.City;
        txtPostalCode.Text = Profile.Address.PostalCode;
    }
}

运行结果:
应用程序会将用户输入的用户名及国家信息等存放于数据库中,并且自动为用户生成唯一ID编号,客户端表示通常以Cookies的方式存放于客户端电脑上,有效期大约在60天左右。这样应用程序就很方便的储存了用户的个人设置信息,为程序的个性化服务提供了前提。#p#分页标题#e#

下一节我们将一起学习Asp.Net 2.0个性化服务 Web部件。