Кажется, что вы относительно довольны процессом аутентификации, но вы хотите изучить другие параметры для сеанса / настроек.
Мое предложение касается только настроек (ролей, предпочтений и т. Д.)
По моему мнению, необходимость проходить весь технологический стек от пользовательского интерфейса до бизнес-уровня к уровню БД к БД иногда бывает немного излишним.
Для данных, которые вряд ли изменятся во время сеанса, это добавляет много накладных расходов ... Возможно, происходит несколько преобразований данных (БД (реляционный формат) -> ORM -> Сериализация XML веб-службы -> десериализация веб-уровня) .
Вы можете рассмотреть сессионную систему, которая не зависит от тяжелой системы СУБД или от модели кэширования / сеанса ASP.NET. Есть варианты, которые очень эффективны и хорошо масштабируются.
Вы можете использовать RavenDB от Ayende Rahien (Создано для .NET). Его главная цель - обеспечить высокопроизводительный доступ с минимальными задержками к документам JSON без схемы.
Используя это решение, вы настроите ravenDB на веб-уровне, чтобы доступ к данным был очень быстрым.
При первой аутентификации и получении настроек вы сохраняете ID пользователя и информацию о настройках в этой сеансовой БД.
Каждый раз, когда вы загружаете свой контроллер после этого, данные настроек доступны без необходимости возврата в СУБД.
Эту БД также можно использовать для кэширования других данных, связанных с сетью.
Что касается безопасности , данные настроек попадают на веб-уровень независимо от используемого вами метода. Это решение будет не более или менее безопасным, чем другие варианты (более безопасным, чем незашифрованный файл cookie). Если вам нужно, вы можете зашифровать данные сеанса, но это снова увеличит ваши накладные расходы.
Просто еще один из миллиона вариантов для рассмотрения.
Удачи,
Дайте нам знать, что вы решите!
Patrick.