public virtual async Task <JsonResult> SwitchToLinkedAccount(SwitchToLinkedAccountModel model) { if (!await _userLinkManager.AreUsersLinked(AbpSession.ToUserIdentifier(), model.ToUserIdentifier())) { throw new ApplicationException(L("This account is not linked to your account")); } var result = await SaveAccountSwitchTokenAndGetTargetUrl(model.TargetTenantId, model.TargetUserId); _authenticationManager.SignOutAll(); return(result); }
public virtual async Task <JsonResult> SwitchToLinkedAccount(SwitchToLinkedAccountModel model) { CheckModelState(); using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MayHaveTenant)) { if (!await _userLinkManager.AreUsersLinked(AbpSession.GetUserId(), model.TargetUserId)) { throw new ApplicationException(L("This account is not linked to your account")); } var targetUser = await _userManager.FindByIdAsync(model.TargetUserId); var targetTenantId = targetUser.TenantId; var result = await SaveAccountSwitchTokenAndGetTargetUrl(targetTenantId, model.TargetUserId); AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie); return(result); } }