Я считаю, что ваша проблема на самом деле связана с ограниченным контекстом. Что касается «паролей, истории заказов, возвратов, сегментации клиентов», то каждый из них может быть ограниченным контекстом. Поэтому вы можете рассмотреть возможность разделения вашего WebsiteUser на несколько сущностей, каждая из которых соответствует контексту. Может возникнуть некоторое дублирование, но вы сосредотачиваетесь на своей области и избавляетесь от очень больших классов с множеством обязанностей.
Да, если вы использовали связку ключей для хранения своих учетных данных, было бы возможно, чтобы они вводили свои учетные данные для каждой учетной записи (вы бы сохранили их в цепочке для ключей), а затем выполняли выход / вход как нужно. Не самое лучшее, но, возможно, это все, что у вас есть для вас.
С учетом того, как работает код FBConnect, возможно, не более одного пользователя одновременно.
Однако, если у вас было два пользователя A и B, при нажатии на вкладку пользователя B, вы можете выйти из системы пользователя A, а затем войти в систему пользователя B. Затем, когда будет нажата вкладка пользователя A, пользователь B выйдет из системы, а пользователь A снова войдет в систему.
Sam