【发布时间】:2011-02-24 18:59:58
【问题描述】:
在使用<security mode="Transport> 时,有什么方法可以获取有关在我的 Web 服务方法中使用了哪个客户端证书的信息?我筛选了 OperationContext.Current,但找不到任何明显的东西。
我的服务器配置如下:
<basicHttpBinding>
<binding name="SecuredBasicBindingCert">
<security mode="Transport">
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
我正在与第三方发布/订阅系统合作,该系统不幸地使用 DataPower 进行身份验证。似乎如果我在此配置中使用 WCF,那么我无法收集有关调用者的任何信息(因为实际上没有发送凭据)。
我需要能够在不更改我的配置或要求他们更改有效负载的情况下找出谁在调用我的服务。
【问题讨论】:
-
我正在考虑通过简单地添加一个唯一的查询字符串来利用端点地址。 QueryString 可以通过
((System.ServiceModel.Channels.HttpRequestMessageProperty)System.ServiceModel.OperationContext.Current.IncomingMessageProperties[System.ServiceModel.Channels.HttpRequestMessageProperty.Name]).QueryString读取
标签: wcf wcf-security ibm-datapower