2009-07-29 120 views
0

我想在使用Web服務的同時驗證客戶端。我在客戶端看到一個名爲ClientCredential的屬性,我們可以在其中傳遞用戶名和密碼。如何將此信息傳遞給我的WCF Web服務,以及如何驗證用戶標識和密碼?如何在使用WCF Web服務時驗證客戶端?

回答

0

如果你想使用ClientCredential與用戶名/密碼,您需要配置的是,在客戶端的app.config像這樣的 - 無論是使用傳輸或郵件的安全性,無論你的作品,然後指定

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="UserNameSecurity"> 
      <security mode="Message"> 
      <message clientCredentialType="UserName"/> 
      </security> 
     </binding> 
     </basicHttpBinding> 

,然後你需要在你的終端使用此綁定配置「UserNameSecurity」在客戶端上:

<client> 
     <endpoint address="http://localhost:8888/MyService" 
       binding="basicHttpBinding" bindingConfiguration="UserNameSecurity" 
       contract="IMyService" /> 

在服務器端,您需要定義如何驗證用戶 - 無論是使用的是Windows(活動目錄域)或使用AS P.NET會員供應商(及其關聯的用戶數據庫):

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="Default"> 
      <serviceCredentials> 
      <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"/> 
      </serviceCredentials> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

在這種情況下,您的用戶名/密碼將針對ASP.NET成員資格數據庫進行檢查。

如果這全部都放在企業內部的Intranet上,我寧願使用集成的Windows安全功能 - 它更易於安裝和使用,並且更加可靠和安全。但它只能在公司內部,在企業防火牆內部運作。

Marc