public void SetMigrateAnonymous() { var userId = WebCommon.GetUserId(); IList <SiteMenusInfo> smis = new List <SiteMenusInfo>(); UserProfileInfo upi = new UserProfileInfo(); var menuBll = new SiteMenus(); if (Roles.GetRolesForUser().Length == 0) { var guestRole = new SiteRoles().GetAspnetModel(Membership.ApplicationName, "guest"); string[] accessIds = { guestRole.Id.ToString() }; smis = menuBll.GetMenusAccess(Membership.ApplicationName, accessIds, false); upi = new UserProfileInfo { SiteCode = AppCode, SiteTitle = GlobalConfig.SiteTitle }; } else { var accessIds = new List <string>(); accessIds.Add(userId.ToString()); var roleIds = new SiteRoles().GetAspnetRoleIds(Membership.ApplicationName, Roles.GetRolesForUser()); foreach (var item in roleIds) { accessIds.Add(item.ToString()); } var isAdmin = HttpContext.Current.User.IsInRole("Administrators"); Task[] tasks = new Task[2]; tasks[0] = Task.Factory.StartNew(() => { var fuInfo = new FeatureUser().GetModel(userId, "UserProfile"); if (fuInfo != null) { upi.SiteCode = fuInfo.SiteCode; upi.SiteTitle = fuInfo.SiteTitle; upi.SiteLogo = string.IsNullOrWhiteSpace(fuInfo.SiteLogo) ? "" : WebCommon.GetSiteAppName() + fuInfo.SiteLogo; upi.CultureName = fuInfo.CultureName; } }); tasks[1] = Task.Factory.StartNew(() => { smis = menuBll.GetMenusAccess(Membership.ApplicationName, accessIds.ToArray(), isAdmin); }); Task.WaitAll(tasks); } var Profile = new CustomProfileCommon(); Profile.UserMenus = JsonConvert.SerializeObject(smis); Profile.UserInfo = JsonConvert.SerializeObject(upi); Profile.Save(); }
protected void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args) { AnonymousIdentificationModule.ClearAnonymousIdentifier(); try { var userId = WebCommon.GetUserId(); var menuBll = new SiteMenus(); var accessIds = new List <string>(); accessIds.Add(userId.ToString()); Task[] tasks = new Task[3]; tasks[0] = Task.Factory.StartNew(() => { var roleIds = new SiteRoles().GetAspnetRoleIds(Roles.GetRolesForUser()); foreach (var item in roleIds) { accessIds.Add(item.ToString()); } }); var userProfileInfo = new UserProfileInfo(); tasks[1] = Task.Factory.StartNew(() => { var fuInfo = new FeatureUser().GetModel(userId, "UserProfile"); if (fuInfo != null) { userProfileInfo.SiteCode = fuInfo.SiteCode; userProfileInfo.SiteTitle = fuInfo.SiteTitle; userProfileInfo.SiteLogo = string.IsNullOrWhiteSpace(fuInfo.SiteLogo) ? "" : WebCommon.GetSiteAppName() + fuInfo.SiteLogo; userProfileInfo.CultureName = fuInfo.CultureName; } }); IList <SiteMenusInfo> maList = new List <SiteMenusInfo>(); tasks[2] = Task.Factory.StartNew(() => { maList = menuBll.GetMenusAccess(Membership.ApplicationName, accessIds.ToArray(), User.IsInRole("Administrators")); }); Task.WaitAll(tasks); var Profile = new CustomProfileCommon(); Profile.UserMenus = JsonConvert.SerializeObject(maList); Profile.UserInfo = JsonConvert.SerializeObject(userProfileInfo); Profile.Save(); } catch { } }