[索引页]
[源码下载]



温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)


作者:webabcd


介绍
ASP.NET 2.0 中的存储用户配置功能使您可以定义并存储要在整个应用程序中使用的基于用户的设置。而且,在用户未登录时,可以将这些设置存储在匿名配置文件中,然后在将来某个时间将其迁移到登录用户的配置文件中。


关键
1、配置<system.web>元素下的<profile>元素;如果需要支持匿名的话则还需要配置<system.web>元素下的<anonymousIdentification>元素。示例如下,仅为说明
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)    <profile enabled="true" defaultProvider="SqlProfileProvider" inherits="CustomProfile">
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
<providers>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
<add name="SqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)             connectionStringName
="SqlConnectionString"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)             applicationName
="/" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
</providers>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
<properties>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
<add name="Name" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
<add name="Color" type="System.Drawing.Color" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
<group name="Group">
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)          
<add name="Collection" type="System.Collections.ArrayList" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)          
<add name="Price" type="int" defaultValue="100" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
</group>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
</properties>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)    
</profile>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)    
<anonymousIdentification
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
enabled="true"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      cookieName
=".VS2005_ANONYMOUS"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      cookieTimeout
="1440"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      cookiePath
="/"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      cookieRequireSSL
="false"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      cookieSlidingExpiration
="true"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      cookieProtection
="All"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      cookieless
="UseCookies" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)

各属性详细说明参看MSDN,索引处查找“profile 元素”和“anonymousIdentification 元素”

注意:
<profile>元素的inherits属性指定自定义类,该类要继承自ProfileBase

Profile是自动保存的,但是某些复杂类型可能无法自动保存,此时需要设置<profile>元素的automaticSaveEnabled设置为false,要保存的话则调用 Profile 上的 Save 方法即可。要动态取消Profile的自动保存功能的话则需要在 global.asax 中加一个Profile_ProfileAutoSaving事件,示例如下,仅为说明
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)    void Profile_ProfileAutoSaving(Object sender, ProfileAutoSaveEventArgs e)
    }

在需要取消Profile的自动保存功能的页的代码处如下写
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)protected void Page_Load(object sender, EventArgs e)
}


2、通过ProfileManager执行相关任务,如搜索有关所有配置文件、经过身份验证用户的配置文件及匿名用户的配置文件的统计信息,确定在给定时间段内尚未修改的配置文件的数量,根据配置文件的上一次修改日期删除单个配置文件及多个配置文件等

3、将匿名配置文件迁移到经过身份验证的配置文件
在global.asax加一个Profile_MigrateAnonymous事件处理,示例如下,仅为说明
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)    void Profile_MigrateAnonymous(Object sender, ProfileMigrateEventArgs pe)
    }


示例
App_Code/CustomProfile.cs
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)using System;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Data;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Configuration;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.Security;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.UI;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.UI.WebControls;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.UI.WebControls.WebParts;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.UI.HtmlControls;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.Profile;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)

web.config
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)    <profile enabled="true" defaultProvider="SqlProfileProvider" inherits="CustomProfile">
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
<providers>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
<add name="SqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)             connectionStringName
="SqlConnectionString"
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)             applicationName
="/" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
</providers>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
<properties>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
<add name="Name" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
<add name="Color" type="System.Drawing.Color" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
<group name="Group">
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)          
<add name="Collection" type="System.Collections.ArrayList" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)          
<add name="Price" type="int" defaultValue="100" />
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)        
</group>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)      
</properties>
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)    
</profile>

Profile/Test.aspx

Profile/Test.aspx.cs
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)using System;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Data;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Configuration;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Collections;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.Security;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.UI;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.UI.WebControls;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.UI.WebControls.WebParts;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
using System.Web.UI.HtmlControls;
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
温故知新ASP.NET 2.0(C#)(7) - Profile(存储用户配置)
public partial class Profile_Test : System.Web.UI.Page

用“abc”这个用户登录后的运行结果
Name:abc
Color:Color [AliceBlue]
商品有:冰棍
商品有:瓜子
价格:999999
自定义类名字:abc
自定义类姓名:True


注:需要用aspnet_regsql配置数据库


OK
[源码下载]
 

相关文章:

  • 2021-12-06
  • 2021-08-06
  • 2021-10-30
  • 2021-11-18
  • 2021-06-01
  • 2022-02-06
猜你喜欢
  • 2021-10-22
  • 2021-05-27
  • 2021-08-22
  • 2022-02-17
  • 2021-11-25
  • 2022-01-23
相关资源
相似解决方案