我有这些组件:
假设WCF服务(TestService)有一个安全方法:
Boolean IsItWorking();
现在网站中的页面执行以下步骤:
它工作正常,直到我意识到单例客户端实例不起作用。如何向客户提供凭证?在哪里保存凭据?如何正确解决这种情况?
答案 0 :(得分:1)
可以使用WCF WSHttpBinding简单地对WCF服务进行基于用户名/密码的身份验证。有很多关于如何做到这一点的示例代码。
虽然有一些注意事项。如果您在场景中引入身份提供程序(本地联盟与第三方身份提供程序联合),WIF会为您提供更多选项。然后,当用户登录时,WIF会为您的ASP.NET应用程序提供安全令牌以及ASP.NET cookie。
此安全令牌充当声明的工具,您的ASP.NET应用程序也可以重复使用此令牌对WCF后端进行身份验证。 WIF可以帮助您在ASP.NET和WCF端配置它。查看WIF配置中的SaveBootstrapTokens = true属性,并查看ChannelFactory.CreateChannelWithIssuedToken()以使用令牌与您的WCF服务进行通信。 WIF SDK有一个WSTrustChannel示例,用于演示其工作原理以及更多在线示例。