![](/img/trans.png)
[英]Is basicHttpBinding really required when exposing a WCF service as a Web Service for .NET 2.0 Target Client?
[英]Is basicHttpBinding the only option for connecting a .Net 2.0 client to a WCF Service?
這是該問題的后續內容。 我試圖避免使用x509證書方法,因為這會使我的客戶端安裝更加復雜。 如果basicHttpBinding不是唯一的選擇,那么其他綁定方法的一些示例在哪里。
我的客戶使用的是.Net 2.0,我無法訪問System.ServiceModel命名空間,因為該名稱空間直到3.0才出現。
更新:明確地說,客戶端:.Net 2.0,Web服務:.net3.5 / WCF
問題不是.Net 2.0服務與WCF和各種綁定之間的不匹配-它們(非常兼容)(有一些值得注意的例外,在您的情況下不應該成為問題)。
WSE 3.0(在2.0 .Net框架上運行)特別接近。 您可以將它與basicHttpBinding或wsHttpBinding一起使用,並進行一些調整。 “吉米” Skowronski的文章在這里和MSDN文章在這里涵蓋了大部分的基本知識。
您還可以編寫自定義綁定,從而避免出現WSE和WCF之間的一些不兼容性(例如,使用WCF和基本身份驗證時對安全傳輸的要求)
據我了解,您的問題是如何管理身份驗證-在上一個問題中,您排除了Windows身份驗證。 Kerberos在WCF或WSE中均可使用,但這更加復雜。
除非您研究自己的身份驗證方案,否則(據我所知)您只能使用基本身份驗證(因此每個客戶端都提供用戶名或密碼,根據您的需要,所有客戶端都可以使用相同的用戶名或密碼)或基於證書的身份驗證。
Toran的答案是使用基本身份驗證的良好入門。
我認為,也許最好的方法是首先從.Net 2.0(和WSE *)這方面看待需求-建立適合您的客戶端部署的身份驗證機制,然后研究如何使用WCF接受該身份驗證。
WCF幾乎可以接受WSE 3.0可以發送的任何內容(唯一可以想到的例外是地址規范的版本,以及一些更為嚴格的安全性要求)
您可能需要帶有basicHttp的SSL +用戶名/密碼。
首先,下面是您的客戶端在.NET 2.0中用於通過WCF服務進行身份驗證的內容。
Dim client As WebServiceClient = New WebServiceClient("basicHttpWebService")
client.ClientCredentials.UserName.UserName = "username"
client.ClientCredentials.UserName.Password = "password"
接下來,您的WCF服務的示例配置需要SSL +成員資格提供程序憑據
<bindings>
<basicHttpBinding>
<binding name="basicHttp">
<security mode="TransportWithMessageCredential">
<transport/>
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="NorthwindBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceAuthorization principalPermissionMode="UseAspNetRoles"/>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
我唯一不確定的是,要使用客戶端應用程序的第一部分,您可能需要安裝WCF / WPF擴展CTP,因為我通常右鍵單擊並單擊“添加服務參考”,而不是ASMX“添加網站參考” -如果是這樣,則VS2005的此擴展名確實需要安裝.NET 3.0。 但是使用簡單的“添加Web參考”,您仍然應該能夠輸入用戶名/密碼...我只是不知道此vb / c#的外觀...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.