У меня есть работающая служба данных WCF, построенная на поставщике данных Linq2Sql. Пока все выглядит хорошо.
Клиентское приложение, которое подключается к службе, принимает имя пользователя и пароль, которые я аутентифицирую на сервере. Однако на стороне сервера данные для каждого клиента хранятся в отдельной клиентской базе данных. Поэтому мне нужно иметь возможность изменить строку подключения для поставщика данных после того, как пользователь аутентифицирует / идентифицирует себя.
Я переопределил метод CreateDataSource () контекста данных (который, кажется, дает мне возможность динамически изменять строку подключения, что хорошо). Однако во время отладки я вижу, что CreateDataSource () срабатывает до того, как OnRequest () ... OnRequest () - это место, где я обрабатываю аутентификацию пользователей, поэтому я не знаю, кто они и еще авторизованы, когда CreateDataSource () стреляет.
Есть ли другой способ справиться с проблемой строки динамического соединения, не вызывая CreateDataSource () перед моим обработчиком запросов? Или, менее оптимально, есть ли способ отложить или заставить поставщика услуг / данных снова вызвать CreateDataSource () после аутентификации, чтобы я мог сказать, кто пользователь, и построить правильную строку соединения?
Спасибо!