1

我想做的是:

1) 验证客户端对 WCF 服务的第一次调用,这将基于每个用户而不是每个应用程序。

2) 检查客户端是否有权拨打电话。

3) 对于后续调用仅授权,在步骤 1 中已经对先前的调用进行了认证。

或者

如果客户端由于某种原因连接到不同的服务实例,或者“握手”被破坏以重新进行身份验证。

我希望这是有道理的,这是否在 WCF 中使用用户名和密码身份验证和授权隐式发生,或者我/是否有办法编写自定义内容?本质上这是为了效率。

非常感谢,河豚

4

1 回答 1

2

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

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

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

EstabilishSecurityContext默认情况下为真。当您打开此选项时,将使用 WS-SecureConversation 协议。第一次调用传递经过身份验证的凭据,并将安全令牌颁发给客户端。接下来的调用使用此安全令牌来提供客户端身份。这种行为对开发人员来说是透明的,因此您根本不必处理令牌。

于 2011-01-14T15:31:43.960 回答