2011-12-28 108 views
0

我有一個ASP.NET MVC 3項目,並負責實施一些UI控件。我需要調用一些Web服務並將數據綁定到UI控件。問題是Web服務主機(我們無法控制它們)要求我首先實現一個UsernameToken類(WSE 2.0)來認證用戶並生成安全令牌。我知道WSE 2.0在2006年被WCF取代。我不想切換回VS 2005來使用WSE 2.0。我有什麼選擇?ASP.NET MVC 3和WSE 2.0

感謝您的幫助!

回答

0

恐怕Darin Dimitrov的方法行不通。我最終完成的工作是安裝WSE 2.0,然後將dll引用添加到WSE installtion目錄(c:\ Program Files(x86)\ Microsoft WSE \ v2.0 \ Microsoft.Web.Services2.dll)中找到的​​。我還修改了服務的Reference.cs文件以從Microsoft.Web.Services2.WebServicesClientProtocol繼承。我能夠找到UsernameToken類,並且能夠成功進行身份驗證。

我不是這方面的專家,所以我不確定這是否是這樣做的正確方法,但它仍然有效。

0

只需在您的ASP.NET MVC應用程序中添加一個Service Reference,並將其指向Web服務WSDL。這將生成一個與WSE兼容的強類型WCF客戶端。這裏的an article涵蓋了不同的互操作性場景

+0

感謝您的快速回復。我讀過你鏈接的文章,並且關注這個問題 - 「在理論上可以使用WSE 2.0開發Web服務,以便它們可以通過僅使用一組簡化的規範與WSE 3.0(和WCF)進行互操作特別是SOAP 1.1,WSDL 1.0和WS-Security 1.0,但是在這種情況下,Microsoft不支持互操作性,規劃與WCF互操作性最安全的方法是將WSE 2.0代碼升級到WSE 3.0。我有多個WSDL? – tempid 2011-12-28 13:14:30

+0

就像例如,我有'http:// xxx/WSLogin.asmx'和'http:// xxx/GetData.asmx'。我需要爲'WSLogin'和'GetData'添加_two_ WSDL服務引用嗎?如果這是一個新手問題,我以前沒有這麼做過,所以很抱歉。 – tempid 2011-12-28 13:19:49

+0

@ user349308,在這種情況下,您可以使用['svcutil.exe'](http://msdn.microsoft.com/zh-cn/library/aa347733.aspx)命令行工具生成強類型客戶端代理。它允許你指定多個服務URL:'svcutil.exe http://xxxx/WSLogin.asmx http:// xxx/GetData.asmx'。很顯然,這兩種服務之間通用的類將僅在客戶端創建一次。 – 2011-12-28 13:21:36