asp.net – 迁移匿名配置文件的最佳方式

前端之家收集整理的这篇文章主要介绍了asp.net – 迁移匿名配置文件的最佳方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有另一种方法可以隐式迁移所有参数?或任何其他优点.

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

}

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

解决方法

这是要走的路.但我建议进行推广.您可以循环访问 ProfileBase.Properties集合,而不是对每个属性进行硬编码.这些方面的东西:
var anonymousProfile = Profile.GetProfile(args.AnonymousID);
foreach(var property in anonymousProfile.PropertyValues)
{
    Profile.SetPropertyValue(property.Name,property.PropertyValue);
}

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

猜你在找的asp.Net相关文章