• ASP.NET2.0 个性化用户配置


    一、简介

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

    二、个性化的三大步骤

    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>

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

    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();        

    }

      

    七、删除个性化信息

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

    ProfileManager.DeleteProfile(Context.Request.AnonymousID)

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

    ProfileManager.DeleteProfile(User.Identity.Name)
  • 相关阅读:
    angularjs+ionic的app端分页和条件
    js中对象的自定义排序
    angularJS入门笔记
    SpringBoot学习历程
    页面渲染流程
    跨域问题
    jquery知识点结合使用
    对bootstrap模态框的小尝试
    登录页面两端对齐的样式问题
    输入两个数字,将比较结果输出到页面
  • 原文地址:https://www.cnblogs.com/greatandforever/p/1619145.html
Copyright © 2020-2023  润新知