2010-08-31 84 views
0

請原諒此問題中的任何錯誤。我不太熟悉安全的Web服務或WCF。使用.Net 3.5和VS 2008使用安全的WSE2.0/.Net 1.1 WebService

我需要使用一個使用WSE 2.0和.Net 1.1的Web服務。

該服務有兩種安全方式。將X509Certificate和BinarySecurityToken添加到標題中。

我有代碼示例以瞭解如何在使用Visual Studio 2003和WSE 2.0時使用此Web服務。

我的主要問題是我應該嘗試使用「Web引用」還是「服務引用」來使用此Web服務?

我使用的二進制Microsoft.Web.Services2代碼示例。我正在尋找可以讓我執行相同功能的等效類/方法。

代碼的兩個關鍵線我正在尋找替換爲:

webService.ClientCertificates.Add(X509Certificate.CreateFromFile(fileName)); 

SoapContext context = webService.RequestSoapContext; 
context.Security.Tokens.Add(binarySecurityToken); 

誰能給我提供了一些信息,以我應該看或其中任何一個類有用的文章,將有助於我進一步瞭解這一點?

編輯:要添加到這一點,我在努力尋找一種替代的方法是:

webService.RequestSoapContext; 

我發現各種替代類/方法在創建安全令牌然而,如果沒有RequestSoapContext我做不知道在哪裏添加它們。

回答

1

如果你想爲你的客戶端使用WCF,你必須使用添加服務引用。如果您使用添加Web引用僅適用於ASMX服務。我想在VS 2008中不支持WSE擴展,所以你不能從UI創建WSE代理,但是如果你安裝了它們,你將會有一些命令行工具,你仍然可以在.NET 3.5項目中使用它。

如果您需要討論與WSE服務等效的WCF綁定,您將不得不提供更多信息 - 應該有一些配置(在代碼或配置中)爲WSE服務設置一些策略。

您還可以查看WCF < - > WSE 3.0互操作性:Migrating WSE 3.0,Interoperability with WSE 3.0相關的兩篇文章。