2011-02-04 44 views
7

我正在尋找建議以處理針對SilverLight和WPF客戶端界面的應用程序的WCF身份驗證。如何處理Silverlight 4和WPF應用程序的WCF身份驗證

編輯:其實,我需要的身份驗證模式是用戶名/密碼combinaison。此外,將來應用程序應該能夠以完全獨立模式工作(客戶端(WPF)和服務器在同一應用程序內的同一臺計算機上)。那麼我應該在這種情況下不使用WCF嗎?

編輯:另外,在未來的應用程序應該能夠在本地網絡客戶端 - 服務器模式(但沒有IIS),像遊戲一樣工作。那麼我應該在這種情況下不使用WCF嗎?或者有其他選擇嗎?

+0

我需要類似的東西,並在審查不同的內建選項後決定使用MessageInspector http://msdn.microsoft.com/en-us/library/aa717047.aspx。通過使用這個,我可以將數據注入客戶端和服務實現邏輯之外的頭部。 – Michael 2011-05-12 21:40:35

回答

1

您可以通過從UserNamePasswordValidator繼承和這樣的設置customUserNamePasswordValidatorType在你的行爲的配置實現自己的驗證。服務的用戶名/密碼屬性。

0

使用AuthenticationService檢查此解決方案。我喜歡它,並決定將其用於三平臺的應用程序(網絡/ SL/WPF)

http://msdn.microsoft.com/en-us/library/system.web.applicationservices.authenticationservice.aspx

遵循樣本實現的鏈接。

以這種方式,您可以依靠經典的自定義ASP .NET MembershipProvider實現(即使在獨立客戶端中)。

+0

我已經看過AuthenticationService,但它是否可用於我的應用程序的「期貨」版本,如問題中所述? – 2011-02-05 09:25:32

0

IIS不承載WCF服務。看看這個link各種託管選項。 WCF也允許通過各種協議進行通信。請參閱此link以瞭解基於操作平臺和通信協議的託管選項摘要。

0

有可用於WCF服務認證一些技巧(X509證書,令牌,用戶名/密碼和Windows身份驗證。Selecting正確的憑據類型是很重要的。

假設(因爲你是使用Silverlight & WPF)的設置是在Windows環境中,你可以使用Windows身份驗證。To啓用Windows身份驗證遵循的步驟,並強調在IIS託管服務。

希望這有助於和好運!

0

使用WCF的優點是,如果您想在網絡或外部世界中公開服務,則只需更改/添加一些其他配置,而無需更改代碼。

因此,在你有一臺機器上或網絡中的客戶端和服務器的情景絕對是罰款和最簡單的方式是有暴露的兩個終點,與上相同的服務您的要求的交易。

讓您可以與一個端點很好,但身份驗證過程中使用不同的端點與不同的結合機制減少你的開銷。例如:當您在同一臺計算機上時,可以使用net:pipe或net:tcp binding 當您在域內時,可以使用net:tcp或httpbinding。

使用不同的綁定時性能會有所不同。

<behaviors> 
      <serviceBehaviors> 
       <behavior name=""> 
        <serviceMetadata httpGetEnabled="true" /> 
        <serviceCredentials> 
         <userNameAuthentication userNamePasswordValidationMode="Custom" 
               customUserNamePasswordValidatorType="MyNamespace.MyValidator, MyNamespace" /> 
        </serviceCredentials> 
       </behavior> 
      </serviceBehaviors> 
     </behaviors> 

在客戶端可以設置用戶名/密碼組合成ClientCredentials.UserName:

相關問題