【发布时间】:2012-04-13 15:38:09
【问题描述】:
按照这些twolinks,我能够实现一个简单的具有 x509 认证的 Web 服务,以及一个经过身份验证的测试客户端来使用该服务。
现在,它看起来像这样:
--------------
| ServiceA.svc | ------------> Test Client 1
| -GetData() |
--------------
我怎样才能扩展我必须完成的事情:
--------------
| ServiceA.svc | ------------> Test Client 1
| -GetData() | ------------> Test Client 2
| -SaveData() |
--------------
| ServiceB.svc |-------------> Test Client 1
| -GetData() |
--------------
| ServiceC.svc |-------------> Test Client 2
| -SaveData() |
--------------
我已经设置了服务,并且可以使用测试客户端 2。
以下是我的一些问题:
- 我需要为测试客户端 2 创建单独的证书吗?
- 配置文件/端点/行为的外观如何?我认为 Service B 和 C 很容易设置,因为它与我现在拥有的基本相同,但现在 ServiceA 将被两个客户端使用,我有点迷茫。
- 如果调用 ServiceA,我如何知道是哪个客户端调用它?我可能想限制他们可以调用的方法(即 TC1 只能使用 GetData(),TC2 只能使用 SaveData()),并且能够记录谁在访问这些方法。
如果需要,我可以在配置文件中发布我拥有的内容,但它看起来基本上是上述两个链接的内容。
【问题讨论】:
-
正是我所追求的问题.. +1
-
你能通过回答你的问题来发布你最终做了什么吗?
-
•我需要为测试客户端 2 创建单独的证书吗? (是) • 配置文件/端点/行为是什么样的?我认为服务 B 和 C 很容易设置,因为它与我现在拥有的基本相同,但是现在两个客户端都将使用 ServiceA,我有点迷茫。 (配置文件中有多个“行为”节点)
-
•如果调用 ServiceA 我如何知道是哪个客户端调用它?我可能想限制他们可以调用的方法(即 TC1 只能使用 GetData(),TC2 只能使用 SaveData()),并且能够记录谁在访问这些方法。 (在代码中,使用
ServiceSecurityContext.Current.PrimaryIdentity.Name)
标签: wcf web-services wcf-security x509certificate x509