我有一个带有 WCF 服务的无状态服务器。服务器可以有多个数据库连接。因此,我必须为每个 WCF 请求提供数据库连接。我在请求对象中执行此操作。因此,对我的服务器的每个 WCF 请求都包含有关数据库连接的信息。这是函数的操作合约:
<OperationContract()>
Function ReadPersons(ByVal aRequest As ReadPersonsRequest) As PersonsResponse
这是请求的数据合同:
<DataContract()>
Public Class ReadPersonsRequest
<DataMember()>
Public Property DatabaseConfig() As DatabaseConfig
现在我想为我的 WCF 服务进行自定义身份验证。因此我实现了一个继承自 UserNamePasswordValidator 的 CustomUserNamePasswordValidator。我得到用户名和密码。用户存储在数据库中。因此我必须为身份验证做一个数据库请求。问题是:我不知道服务器应该使用哪个DB,因为这个信息是在WCF服务函数的请求对象中提交的(见上文)。
在UserNamePasswordValidator的实现中,有没有办法获取被调用的WCF服务函数的参数(请求对象)?