2011-03-15 26 views
4

我想開發一個託管在iis服務器上的wcf服務,並使用Web上的Silverlight應用程序(從此wcf服務使用SL應用程序)。我也想爲從Silverlight應用程序請求的用戶使用用戶名密碼認證和授權。使用wsHttpBinding或basicHttpBinding for Silverlight應用程序,哪一個?

我想知道我必須使用wsHttpBinding或basicHttpBinding來達到這個目的嗎? 我不能在Silverlight中使用的wsHttpBinding和使用basicHttpBinding的時候,我不能爲這個綁定

還我.NET4合作創建的認證和授權(WCF 4和Silverlight 4)

請幫我 感謝你的答案

回答

1

我可能在這裏,但我剛開始一個類似的項目。我的第一個想法是使用basicHttpBinding。然後,您的Web服務將接受用戶名和密碼作爲任何方法調用的參數(用戶名/密碼可以存儲在會話或設置文件中)。在後端,您將根據每個呼叫檢查用戶的憑據。使用這種方法意味着你會想要使用Https因此要求你設置綁定屬性

<security mode="Transport"> 

希望這有助於!

+0

謝謝親愛的阿蘭。這種方法已經到達我的腦海。但對您的意見來說,這個解決方案是一個工程師的方法,並支持這個安全性? – 2011-03-15 13:59:37

1

BasicHttpBinding不支持用於身份驗證的消息級安全性。它可以實現傳輸級別的認證,但是這需要你依靠Windows身份驗證,並因此可能不是跨平臺

點擊這裏獲取更多信息 - >http://msdn.microsoft.com/en-us/library/dd744835(v=vs.95).aspx

我個人建議你考慮調查通過Silverlight BrowserHttp堆棧訪問的REST風格WCF服務...因此,如果用戶通過ASP.NET驗證了您的服務器應用程序(我假設您的Silverlight應用程序託管在ASP.NET/IIS中),Silverlight客戶端應用程序將使用相同的身份驗證憑據(通過將相同的ASP.NET身份驗證cookie與其請求一起傳遞)。這對我來說更好(並且不那麼花時間),比試圖與BasicHttpBinding搏鬥。這種方法確實意味着您放棄使用「添加服務引用...」。我建議使用this blog post來了解這種方法的更多信息。

+0

謝謝親愛的詹姆斯韋伯斯特。我想你的解決方案,並審查你建議給我的鏈接。非常感謝 – 2011-03-15 13:55:14

相關問題