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