如何调用需要基于声明的身份验证的Web服务?

时间:2010-12-29 22:38:14

标签: web-services wif claims-based-identity sts-securitytokenservice

我有一个想要调用Web服务的客户端。 我有一个Web服务(asmx),一个可以显示声明的default.aspx。 我有一个我的网络服务信任的测试STS。 我测试过并且sts可以发送正确的声明,如果我通过显示声明的default.aspx页面,网络服务似乎也可以获得它们。我为客户端创建了一个代理(使用Visual Studio“添加服务引用”)来调用Web服务。我找不到如何以编程方式从客户端调用Web服务的方法,以便通过我的STS进行身份验证。我在下面调用,但是sts将响应声明返回给客户端,它应该返回到Web服务并调用Web服务功能。

MyClient =  MyWebServiceSoapClient("MyWebServiceSoap", "http://127.0.0.1:81/MyService.asmx?whr=http%3a%2f%2flocalhost%3a25919%2fteststs%2fdefault.aspx%3fwa%3dwsignin1.0%26wtrealm%3dhttp%3a%2f%2f127.0.0.1%3a81%2fmyservice.asmx");
MyClient.MyServiceFunction();

2 个答案:

答案 0 :(得分:2)

检查身份培训工具包中的样本或“A Guide to Claims based Identity”中的示例。

答案 1 :(得分:1)

我编写了一个C#库,使您能够从第三方STS获取SAML令牌,随后从ADFS获取最终对SharePoint进行身份验证。它可能会有所帮助:

http://www.huggill.com/2012/02/04/claims-proxy-a-c-sharp-library-for-calling-claims-protected-web-services/