簡體   English   中英

basicHttpBinding是將.Net 2.0客戶端連接到WCF服務的唯一選擇嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM