Соединения с базой данных довольно дороги, с точки зрения ресурсов, и я лично рекомендую вам пересмотреть свои требования по наличию одного на пользователя.Если вы не можете гарантировать, что общее число пользователей будет очень маленьким (скажем, не более 5-10).
Сказав это, вы можете просто сохранить соединение в объекте User
, который представляетваш пользователь.Или используйте глобальный словарь, в котором идентификаторы пользователей сопоставляются со строками соединения.
Если единственная разница между строками соединения - это имя пользователя / пароль, вы можете вместо этого выдать себя за клиента и использовать вместо него аутентификацию Windows в SQL Server.*