迁移匿名配置文件的最佳方式

时间:2009-11-02 12:23:41

标签: asp.net profiling anonymous migrate

是否有另一种方法可以隐式迁移所有参数?或任何其他优点。

来自MSDN

public void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args)
{
  ProfileCommon anonymousProfile = Profile.GetProfile(args.AnonymousID);

  Profile.ZipCode = anonymousProfile.ZipCode;
  Profile.CityAndState = anonymousProfile.CityAndState;
  Profile.StockSymbols = anonymousProfile.StockSymbols;

  ////////
  // Delete the anonymous profile. If the anonymous ID is not 
  // needed in the rest of the site, remove the anonymous cookie.

  ProfileManager.DeleteProfile(args.AnonymousID);
  AnonymousIdentificationModule.ClearAnonymousIdentifier(); 

  // Delete the user row that was created for the anonymous user.
  Membership.DeleteUser(args.AnonymousID, true);

}

或者这是最佳/唯一的方式吗?

2 个答案:

答案 0 :(得分:8)

这是要走的路。但我建议进行概括。您可以循环访问ProfileBase.Properties集合,而不是对每个属性进行硬编码。这些方面的东西:

var anonymousProfile = Profile.GetProfile(args.AnonymousID);
foreach(var property in anonymousProfile.PropertyValues)
{
    Profile.SetPropertyValue(property.Name, property.PropertyValue);
}

由于属性组表示为属性名称的一部分(例如“Settings.Theme”表示Settings组中的Theme属性),上述代码也应该与属性组一起使用。

答案 1 :(得分:0)

我是否正确理解了您的问题?

在登录期间迁移配置文件属性

http://msdn.microsoft.com/en-us/library/taab950e.aspx