2011-04-22 75 views
1

我寫了一些WCF應用程序 - (使用IIS 7)。 連接到此服務的客戶端是由我在Silverlight開發的。需要使用Silverlight客戶端的安全協議

我想只能給我編寫訪問服務和使用它的功能的客戶端=>如果某些其他客戶端嘗試訪問該服務(無用戶名+密碼)服務會忽視他。

我該怎麼辦?

感謝您的任何幫助。

+0

你可以使用HTTPS? – 2011-04-22 07:02:14

回答

2

的問題是,在Silverlight中設定的電流功能有限,所以要走的路是Windows身份驗證不通過互聯網工作:

<bindings> 
    <binding name="authenticatedBinding"> 
    <security mode="TransportCredentialOnly"> <!-- or Transport in case of HTTPS --> 
     <transport clientCredentialType="Windows" /> 
    </security> 
    </binding> 
</bindings> 

其處理時基本身份驗證驗證用戶名和密碼Windows帳戶(here is some article有關強制的基本身份驗證,以驗證對定製憑證存儲):

<bindings> 
    <binding name="authenticatedBinding"> 
    <security mode="TransportCredentialOnly"> <!-- or Transport in case of HTTPS --> 
     <transport clientCredentialType="Basic" /> 
    </security> 
    </binding> 
</bindings> 

或用戶名令牌,該令牌可以通過自定義密碼驗證或會員驗證供應商。缺點是,Silverlight的只通過HTTPS支持這一點:

<bindings> 
    <binding name="authenticatedBinding"> 
    <security mode="TransportWithMessageCredential"> 
     <transport clientCredentialType="None" /> 
     <message clientCredentialType="UserName" /> 
    </security> 
    </binding> 
</bindings> 

換句話說:如果您需要安全的協議,如果HTTPS的唯一選擇。如果您只需通過HTTP對客戶端進行身份驗證,並且將純文本傳遞給用戶名和密碼沒有問題,則可以嘗試使用自定義憑據存儲庫進行基本身份驗證。任何其他情況都需要您構建自己的自定義解決方案。