Нужна помощь со строками динамического соединения в службах данных WCF ... CreateDataSource () вызывается перед OnRequest ()? - PullRequest
1 голос
/ 15 июня 2011

У меня есть работающая служба данных WCF, построенная на поставщике данных Linq2Sql. Пока все выглядит хорошо.

Клиентское приложение, которое подключается к службе, принимает имя пользователя и пароль, которые я аутентифицирую на сервере. Однако на стороне сервера данные для каждого клиента хранятся в отдельной клиентской базе данных. Поэтому мне нужно иметь возможность изменить строку подключения для поставщика данных после того, как пользователь аутентифицирует / идентифицирует себя.

Я переопределил метод CreateDataSource () контекста данных (который, кажется, дает мне возможность динамически изменять строку подключения, что хорошо). Однако во время отладки я вижу, что CreateDataSource () срабатывает до того, как OnRequest () ... OnRequest () - это место, где я обрабатываю аутентификацию пользователей, поэтому я не знаю, кто они и еще авторизованы, когда CreateDataSource () стреляет.

Есть ли другой способ справиться с проблемой строки динамического соединения, не вызывая CreateDataSource () перед моим обработчиком запросов? Или, менее оптимально, есть ли способ отложить или заставить поставщика услуг / данных снова вызвать CreateDataSource () после аутентификации, чтобы я мог сказать, кто пользователь, и построить правильную строку соединения?

Спасибо!

1 Ответ

1 голос
/ 16 июня 2011

Существует ли причина, по которой вы можете выполнить аутентификацию в методе CreateDataSource - сначала выполните аутентификацию, а затем соответственно создайте источник данных с соответствующей строкой соединения.

Метод CreateDataSource вызывается каждый раз для создания нового экземпляра вашего источника данных.

Спасибо Pratik

...