我想做的是:

1)验证客户对WCF服务的第一个呼叫的验证,这将是每个用户的基础,而不是每个使用的基础。

2)检查客户端被授权拨打电话。

3)对于后续的电话,仅授权,在步骤1中已经进行了身份验证以供上一个通话。

或者

如果客户由于某种原因已连接到服务的其他实例,或者“握手”被打破以重新实现。

我希望这是有道理的,这是使用用户名和密码身份验证和授权在WCF中隐含的吗?从本质上讲,这是出于效率。

非常感谢,Fugu

有帮助吗?

解决方案

这称为安全上下文(或安全性会话),并且消息安全性是可能的。唯一的限制是会话是在单个服务实例和客户端代理之间处理的(所有调用都必须在同一代理实例上完成)。

这是一些允许安全上下文的基本配置:

<wsHttpBinding>
  <binding name="wsHttp">
    <security mode="Message">
      <message clientCredentialsType="UserName" estabilishSecurityContext="true" />
    </security>
  </binding>
</wsHttpBinding>

EstabilishSecurityContext 默认情况下是正确的。当您打开WS-SecureConversation协议时。第一个通话通过已经过身份验证的凭据,并将安全令牌发送给客户。接下来的通话使用此安全令牌提供客户身份。对于开发人员而言,这种行为是透明的,因此您根本不必处理令牌。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top