Получить параметры запроса WCF в UserNamePasswordValidator

У меня есть сервер без отслеживания состояния со службой WCF. Сервер может иметь несколько подключений к БД. Поэтому я должен предоставить соединение с БД для КАЖДОГО запроса WCF. Я делаю это в объекте запроса. Таким образом, каждый запрос WCF к моему серверу содержит информацию о соединении с БД. Это контракт операции для функции:

 <OperationContract()>
 Function ReadPersons(ByVal aRequest As ReadPersonsRequest) As PersonsResponse

Это контракт данных для запроса:

<DataContract()>
Public Class ReadPersonsRequest
    <DataMember()>
    Public Property DatabaseConfig() As DatabaseConfig

Теперь мне нужна настраиваемая проверка подлинности для моей службы WCF. Поэтому я реализовал CustomUserNamePasswordValidator, унаследованный от UserNamePasswordValidator. Я получаю имя пользователя и пароль. Пользователи хранятся в БД. Поэтому я должен сделать запрос к БД для аутентификации. Проблема в том, что я не знаю, какую БД должен использовать сервер, потому что эта информация отправляется в объекте запроса функции службы WCF (см. Выше).

Есть ли способ получить параметр (объект запроса) вызываемой функции службы WCF в реализации UserNamePasswordValidator?


person user2339890    schedule 25.05.2013    source источник


Ответы (1)


Вы можете создать свой собственный MessageInspectors, чтобы перехватывать запрос до того, как он будет получен на сервере. Таким образом, вы можете идентифицировать детали базы данных из обращения в службу поддержки и действовать соответствующим образом.

Дополнительные сведения о реализации см. здесь

person Saravanan    schedule 25.05.2013