如何在ASP.NET应用程序中使用WCF客户端?

时间:2012-12-04 11:01:17

标签: c# asp.net wcf security wif

我有这些组件:

  1. ASP.NET应用程序(网站)
  2. WIF安全
  3. WCF服务(通过2保护)
  4. 假设WCF服务(TestService)有一个安全方法:

      Boolean IsItWorking();
    

    现在网站中的页面执行以下步骤:

    1. 转到限制页面
    2. 提供登录凭据
    3. 处理WIF请求/响应=>已创建cookie
    4. 页面为单身人士提供ClientCredentials! WCF客户端参考
    5. 页面调用TestService.IsItWorking()
    6. 它工作正常,直到我意识到单例客户端实例不起作用。如何向客户提供凭证?在哪里保存凭据?如何正确解决这种情况?

1 个答案:

答案 0 :(得分:1)

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

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示例,用于演示其工作原理以及更多在线示例。