【问题标题】:Get WCF request parameters in UserNamePasswordValidator在 UserNamePasswordValidator 中获取 WCF 请求参数
【发布时间】:2013-05-25 08:25:31
【问题描述】:

我有一个带有 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服务函数的参数(请求对象)?

【问题讨论】:

    标签: wcf authentication custom-authentication


    【解决方案1】:

    您可以创建自己的MessageInspectors,以便在服务器接收到请求之前拦截请求。通过这种方式,您可以从服务调用中识别数据库详细信息并进行相应处理。

    更多关于实现的细节是here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 2011-03-22
      • 2017-01-27
      相关资源
      最近更新 更多