2012-01-06 28 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(); 

這似乎是它的要義。