快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

介绍

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

关键

1、配置<system.web>元素下的<profile>元素;如果需要支持匿名的话则还需要配置<system.web>元素下的<anonymousIdentification>元素。示例如下,仅为说明

  <profile enabled="true" defaultProvider="SqlProfileProvider" inherits="CustomProfile">
   <providers>
    <add name="SqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
       connectionStringName="SqlConnectionString"
       applicationName="/" />
   </providers>
   <properties>
    <add name="Name" />
    <add name="Color" type="System.Drawing.Color" />
    <group name="Group">
     <add name="Collection" type="System.Collections.ArrayList" />
     <add name="Price" type="int" defaultValue="100" />
    </group>
   </properties>
  </profile>
  
  <anonymousIdentification
   enabled="true"
   cookieName=".VS2005_ANONYMOUS"
   cookieTimeout="1440"
   cookiePath="/"
   cookieRequireSSL="false"
   cookieSlidingExpiration="true"
   cookieProtection="All"
   cookieless="UseCookies" />

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

注意:

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

Profile是自动保存的,但是某些复杂类型可能无法自动保存,此时需要设置<profile>元素的automaticSaveEnabled设置为false,要保存的话则调用 Profile 上的 Save 方法即可。要动态取消Profile的自动保存功能的话则需要在 global.asax 中加一个Profile_ProfileAutoSaving事件,示例如下,仅为说明

  void Profile_ProfileAutoSaving(Object sender, ProfileAutoSaveEventArgs e)
  {
    if ((e.Context.Items["CancelProfileAutoSave"] != null) && ((bool)e.Context.Items["CancelProfileAutoSave"] == true))
      e.ContinueWithProfileAutoSave = false;
  }

在需要取消Profile的自动保存功能的页的代码处如下写

protected void Page_Load(object sender, EventArgs e)
{
 Context.Items["CancelProfileAutoSave"] = true;  
}

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

3、将匿名配置文件迁移到经过身份验证的配置文件

在global.asax加一个Profile_MigrateAnonymous事件处理,示例如下,仅为说明

  void Profile_MigrateAnonymous(Object sender, Profi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号