维护WCF客户端和服务之间的身份验证? (提供的工作流)
-
11-10-2019 - |
题
我想做的是:
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协议时。第一个通话通过已经过身份验证的凭据,并将安全令牌发送给客户。接下来的通话使用此安全令牌提供客户身份。对于开发人员而言,这种行为是透明的,因此您根本不必处理令牌。
不隶属于 StackOverflow