2011-01-14 53 views
1

我想要做的是:维护WCF客户端和服务之间的身份验证? (工作流提供)

1)验证客户为先叫它做的WCF服务,这将是在每个用户的基础上,而不是每个应用程序的基础。

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

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

OR

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

我希望这是有道理的,这是否隐式地发生在WCF使用用户名和密码认证和授权,或者我/有没有办法写一些自定义的东西?基本上这是为了效率。

非常感谢, 府谷

+0

你在哪里托管你的WCF服务?你使用的是什么类型的认证; Windows,Forms? – bic 2011-01-14 15:23:06

回答

2

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

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

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

EstabilishSecurityContext默认为true。当您打开此选项时,将使用WS-SecureConversation协议。第一次调用传递经过身份验证的凭证,并向客户端发放安全令牌。接下来的呼叫使用此安全令牌来提供客户端身份。这种行为对开发者来说是透明的,所以你根本不必处理令牌。

相关问题