private void Profile_MigrateAnonymous(object sender, ProfileMigrateEventArgs args) { SessionWrapper wrapper = SessionManager.GetSessionWrapper(); try { IUserProfileDao profileDao = OrnamentContext.DaoFactory.MemberShipFactory.CreateProfileDao(); ProfileValue anonymous = profileDao.FindByLoginId(args.AnonymousID); if (anonymous != null) { //合并anonymous profile ProfileBase currenProfile = HttpContext.Current.Profile; foreach (string key in anonymous.Properities.Keys) { currenProfile.SetPropertyValue(key, anonymous.Properities[key]); } profileDao.Delete(anonymous); currenProfile.Save(); AnonymousIdentificationModule.ClearAnonymousIdentifier(); } //最后,一更新Multi-lang的cookie,因此使用Profile的语言。 OrnamentContext.MemberShip.SwitchLanguage(OrnamentContext.MemberShip.CurrentUser().GetLanguage()); wrapper.Commit(); } catch (Exception ex) { ILog log = LogManager.GetLogger(typeof(GlobalContext)); log.Error(ex.Message, ex); } finally { wrapper.Close(); } }