2012-01-06 32 views
1

我在VS 2010 C#项目中提到了两个Web服务。其中一个服务进行身份验证,另一个服务正在获取数据。 (我也可以使用WSDL生成类,但Web引用看起来相当)。让WSDL适应多种服务 - 如何传递身份验证?

我使用服务1进行身份验证,但是如何告诉其他服务我已通过身份验证?有一个由服务1生成的cookie,我在Fiddler中看到,但由于我没有使用任何基本的Http类,因此我没有看到如何获取它。

回答

0

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

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

这似乎是它的要义。