有WSDL到许多服务 - 如何传递身份验证?

时间:2012-01-06 13:42:21

标签: c# soap wsdl

我在VS 2010 C#项目中引用了两个Web服务。其中一项服务进行身份验证,另一项服务确实可以获取数据。 (我也可以使用WSDL生成类,但Web引用看起来是等效的。)

我使用服务1进行身份验证,但是如何告诉其他服务我已经过身份验证?我在Fiddler中看到了服务1生成的cookie,但我没有看到如何使用它,因为我没有使用任何基本的Http类。

1 个答案:

答案 0 :(得分:0)

啊哈,我现在看到了答案。我的每个WSDL生成的对象都有一个CookieCollection,我可以在身份验证调用后从service1读取。然后我可以为第二个服务设置cookie,如下所示:

response = service1.Authenticate();
CookieCollection allCookies= service1.CookieContainer.GetCookies(uri);
foreach (Cookie c in allCookies)
{
  service2.CookieContainer.SetCookies(_uri,c.Name + "=" +  c.Value);
}
service2.CallMyMethod();

这似乎是它的主旨。