2012-12-04 87 views
0

我有这些组件:如何在ASP.NET应用程序中使用WCF客户端?

  1. ASP.NET应用程序(网站)
  2. WIF安全
  3. WCF服务(通过2个固定)

假设WCF服务(TestService的)已一个安全的方法:

Boolean IsItWorking(); 

现在网站中的页面执行这些步骤S:

  1. 去限制页面
  2. 提供的登录凭证
  3. 过程WIF请求/响应创建=>饼干
  4. 页面提供ClientCredentials到一个单! WCF客户参考
  5. 页面调用TestService.IsItWorking()

它工作得很好,直到我意识到,单客户端实例不工作。如何为客户提供凭证?在哪里保持凭据?如何正确解决这种情况?

回答

1

基于WCF服务的基于用户名/密码的身份验证可以简单地通过WCF WSHttpBinding完成。有很多关于如何做到这一点的示例代码。

http://codebetter.com/petervanooijen/2010/03/22/a-simple-wcf-service-with-username-password-authentication-the-things-they-don-t-tell-you/

有一些注意事项,与此一起去,但。如果您将身份提供者引入您的方案(或者是具有第三方身份提供者的本地一位联邦成员),WIF将为您提供更多选择。然后,当用户登录时,WIF会为您的ASP.NET应用程序提供安全令牌以及ASP.NET cookie。

此安全令牌充当声明的载体,您的ASP.NET应用程序也可以重用此令牌以向您的WCF后端进行身份验证。 WIF可以帮助您在ASP.NET和WCF两端进行配置。查看WIF配置中的SaveBootstrapTokens = true属性,并查看ChannelFactory.CreateChannelWithIssuedToken()以使用令牌与您的WCF服务交谈。 WIF SDK有一个WSTrustChannel示例,演示了它的工作原理以及更多在线示例。

+0

当我有空闲时,我会研究它。与此同时,我已经通过variatron(每个会话的客户端单身)解决了这个问题。它有效,但我仍然不确定。 – SmartK8

+0

谢谢,自举令牌工作完美。 – SmartK8

相关问题