public static List GetApplicableAccounts()

in src/Authentication/MsalExtensions.cs [11:40]


    public static List<(IAccount Account, string CanonicalName)> GetApplicableAccounts(IEnumerable<IAccount> accounts, Guid authorityTenantId, string? loginHint)
    {
        var applicableAccounts = new List<(IAccount, string)>();

        foreach (var account in accounts)
        {
            string canonicalName = $"{account.HomeAccountId?.TenantId}\\{account.Username}";

            // If a login hint is provided and matches, try that first
            if (!string.IsNullOrEmpty(loginHint) && account.Username == loginHint)
            {
                applicableAccounts.Insert(0, (account, canonicalName));
                continue;
            }

            if (Guid.TryParse(account.HomeAccountId?.TenantId, out Guid accountTenantId))
            {
                if (accountTenantId == authorityTenantId)
                {
                    applicableAccounts.Add((account, canonicalName));
                }
                else if (accountTenantId == MsalConstants.MsaAccountTenant && (authorityTenantId == MsalConstants.FirstPartyTenant || authorityTenantId == Guid.Empty))
                {
                    applicableAccounts.Add((account, canonicalName));
                }
            }
        }

        return applicableAccounts;
    }