ASP.NET2.0学习7--个性化用户配置

asp.net

个性化用户配置

一、简介

为用户提供自定义的外观、内容、布局,当用户再次访问的时候,用户还能看到自己原来的设定。

二、个性化的三大步骤

1.  识别用户身份

要建立验证用户身份的机制

创建识别用户需求的机制

创建管理用户的机制

2.  提供个性化服务

针对注册和匿名用户提供不同的服务

3.  存贮用户信息

可以保存用户的相关信息,以方便下次使用,包括用户的登陆信息

三、实现个性化服务的三大功能

1.  个性化用户配置

2.  WEB部件

3.  成员和角色管理

四、为匿名用户进行个性化设置

web.config配置

    <anonymousIdentification enabled="true"/>

    <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>

代码:

    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;

        Profile.LastSubmit = DateTime.Now;

        //显示用户配置信息

        DisplayProfileInfo();

    }

    private void DisplayProfileInfo()

    {

        //从Profile属性中获取数据并赋值给服务器控件           

        txtName.Text = Profile.Name;

        txtCity.Text = Profile.Address.City;

        txtPostalCode.Text = Profile.Address.PostalCode;

        DateTime time = Profile.LastSubmit;

        //如果未获取值则显示空,否则显示获取的值

        if (time.Year == 1)

        {

            labLastSubmit.Text = "空";

        }

        else

        {

            labLastSubmit.Text = time.ToString();

        }

    }

五、为注册用户实现个性化用户配置

web.config配置

    <connectionStrings>

        <add name="NorthwindConnectionString" connectionString="Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True"

            providerName="System.Data.SqlClient" />

    </connectionStrings>

    <system.web>        

          <profile>

              <properties>

                   <add name="ShoppingCart" type="ShoppingCart" serializeAs="Binary"/>

              </properties>           

          </profile>

          <authorization>

              <deny users="?"/>

          </authorization>

          <authentication mode="Forms">

              <forms loginUrl ="Login.aspx"></forms>

          </authentication>

代码示例:code 13-2

六、匿名用户转化为注册用户的处理

Global.asax中的设置

    void Profile_MigrateAnonymous(Object sender, ProfileMigrateEventArgs pe)

    {

        //获取匿名用户的Profile对象

        ProfileCommon anonProfile = Profile.GetProfile(pe.AnonymousID);

        //如果总价为不为0(说明匿名用户进行了选择),则将匿名用户的Profile存储起来

        if (anonProfile.ShoppingCart.Total  != 0)

        {           

            Profile.ShoppingCart = anonProfile.ShoppingCart;           

        }       

        //删除匿名用户的用户数据(从aspnet_Users表)

        Membership.DeleteUser(pe.AnonymousID);

        //删除匿名用户的Profle数据(从aspnet_Profile表)

        ProfileManager.DeleteProfile(pe.AnonymousID);

        //删除匿名用户标识

        AnonymousIdentificationModule.ClearAnonymousIdentifier();       

}

       示例代码:code 13-3

七、删除个性化信息

删除匿名用户的个性化信息

ProfileManager.DeleteProfile(Context.Request.AnonymousID)

删除注册用户的个性化信息

ProfileManager.DeleteProfile(User.Identity.Name)

时间: 2024-05-21 07:35:13

ASP.NET2.0学习7--个性化用户配置的相关文章

ASP.NET2.0 上传图片并为用户创建相应文件夹

asp.net|创建|上传|上传图片 //前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3

ASP.NET2.0学习5--N层代码示例

asp.net|示例 一.数据库Test, 表:create table Customers (        CustId int IDENTITY(1,1) primary key,        CustName varchar(20) not null,        Address varchar(50),        Linkman varchar(20) ) //insert into Cusomers values('ggg','xuzhou','zhangsan'); 二.配

asp.net2.0上传图片并为用户创建相应文件夹

//前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD

ASP.NET2.0新特性概述

asp.net ASP.NET技术从1.0版本升级到1.1变化不是很大.然而,从ASP.NET 1.x升级到2.0,却不是件轻而易举的事情.ASP.NET 2.0技术增加了大量方便.实用的新特性.ASP.NET 2.0主要提供控件.页面框架.服务与APIs等3个方面的技术特性.           控件         在ASP.NET 1.x时代,由于内置服务器控件数量有限.功能覆盖面窄,因此,开发人员怨声载道.为了消除这个技术软肋,ASP.NET 2.0做出了突破性改进.在ASP.NET 2

ASP.NET2.0新特性概述_实用技巧

ASP.NET技术从1.0版本升级到1.1变化不是很大.然而,从ASP.NET 1.x升级到2.0,却不是件轻而易举的事情.ASP.NET 2.0技术增加了大量方便.实用的新特性.ASP.NET 2.0主要提供控件.页面框架.服务与APIs等3个方面的技术特性.       控件 在ASP.NET 1.x时代,由于内置服务器控件数量有限.功能覆盖面窄,因此,开发人员怨声载道.为了消除这个技术软肋,ASP.NET 2.0做出了突破性改进.在ASP.NET 2.0中,新增数十个服务器控件.根据控件功

Asp.Net2.0下C#环境 Login控件实现用户登录

原文:Asp.Net2.0下C#环境 Login控件实现用户登录一.前台显示效果 二.前台代码             <asp:Login ID="Login1" runat="server" BackColor="#F7F7DE" BorderColor="#CCCC99" BorderStyle="Solid"                BorderWidth="1px"

Asp.net1.0升级至ASP.NET2.0十个问题总结

asp.net|问题 这几天升级了一下原来的1.1项目,发现了一些问题,总结一下放在这里,也提醒还没有来得及升级或准备升级的朋友,升级的过程中少走弯路,少浪费时间. 1.Global.asax文件的处理形式不一样 转化后将出现错误,在vs2003中Global.asax具有代码后置文件,2.0下, 将代码分离文件移到 App_Code 目录下,以便使其自动变为可通过应用程序中的任意 ASP.NET 页面访问."Code-behind"属性将从 ASAX 文件的指令中删除.vs2005则

ASP.NET1.0升级ASP.NET2.0的问题总结

asp.net|问题     这几天升级了一下原来的1.1项目,发现了一些问题,总结一下放在这里,也提醒还没有来得及升级或准备升级的朋友,升级的过程中少走弯路,少浪费时间. 1.Global.asax文件的处理形式不一样,转化后将出现错误 在vs2003中Global.asax具有代码后置文件,2.0下, 将代码分离文件移到 App_Code 目录下,以便使其自动变为可通过应用程序中的任意 ASP.NET 页面访问."Code-behind"属性将从 ASAX 文件的指令中删除.vs2

ASP.NET2.0的控件状态和视图状态探讨

asp.net|控件|视图 基本概念 控件状态-为了让控件正常工作,有时需要存储控件状态数据.例如,如果编写了一个自定义控件,其中具有显示不同信息的不同选项卡,为使该控件如预期一样工作,控件需要知道在往返过程中选择的是哪个选项卡.ViewState 属性可用于此目的,但开发人员可能在页级别关闭了视图状态,从而有效地中断控件.为解决此问题,ASP.NET 页框架在 ASP.NET 2.0 版中公开了一种称为控件状态的新功能. ControlState 属性允许保持特定于控件的属性信息,不像 Vie