管理profile并生成profile报告
Profile会对象自动保存用户profile信息,这既是好事业是坏事。说它是好事,是因为你不需要写存储信息的所有逻辑代码,说它是坏事,是因为这样可能造成一大堆无用的信息被保存在数据库中。幸运的是,ASP.NET 2.0框架包含一个叫做ProfileManager的类,你可以使用它来管理profile信息。它包含了相当多的方法使你能够有效地管理profile并且生成profile报表,下面列出了一些该类的重要方法:DeleteInactiveProfiles. 删除一个特定日期之前的所有profile 
DeleteProfile. 删除特定用户的profile 
DeleteProfiles. 删除一个profile集合FindInactiveProfilesByUserName. 返回一个ProfileInfo对象的集合,该集合表示的profile是匹配一个某个名字,并且是从某个特定日期开始一直未被使用 
FindProfilesByUserName. 返回一个ProfileInfo对象集合,该集合与某个用户名相关联 
GetAllInactiveProfiles. 返回一个ProfileInfo对象集合,该集合表示的profile是从某个特定日期开始一直未被使用的profileGetAllProfiles. 返回一个ProfileInfo对象集合,该集合表示所有的profileGetNumberOfInactiveProfiles. 返回从某个特定日期开始一直未被使用的profile的数量 
GetNumberOfProfiles. 返回profile总数 
这些方法中,虽然所有的方法都返回一个ProfileInfo对象集合,但没有一个返回一个真正的profile。ProfileInfo对象包含以下profile属性IsAnonymous. 表示该profile是否为匿名profileLastActivityDate. 最后一次profile被访问的时间和日期 
LastUpdatedDate. 最后一次profile被升级的时间和日期 
Size. 表示profile的大小,这是在profile provider存储profile信息时记录的 
UserName. 与profile关联的用户名 
ProfileManager有几个方法提供了额外的参数用于支持分页。例如,GetAllProfiles方法的一个重载版本就提供了专门用于设置页面索引、页面大小、总共的记录数的参数,这些参数在需要分页的页面中十分有用。ProfileManager既可以在asp.net页面下使用,也可以在其它程序中使用。例如,你可能需要做一个控制台程序用于每天清除长时间未使用的 profile。列表14的控制台程序会删除七天未使用的profile,你可以使用Windows计划任务(Windows Scheduled Tasks)来安排该程序的执行时间。
列表 14. DeleteInactiveProfiles (C#)using System;
using System.Web.Profile;public class DeleteInactiveProfiles
{    
    public static void Main()
    {
      int deleted = 0;
      deleted = 
        ProfileManager.DeleteInactiveProfiles(
        ProfileAuthenticationOption.All, 
        DateTime.Now.AddDays(-7));
      Console.WriteLine("Deleted " + 
        deleted.ToString() + " profiles" );
    }      
}
你可以通过一下的命令行指令对列表14进行编译
[C#]
C:\WINDOWS\Microsoft.NET\Framework\v2.0.40607\csc 
  DeleteInactiveProfiles.cs