2012-01-09 99 views
1

我的任務是保護使用WCF的Web服務併爲Silverlight,WP7和Android設備提供Web服務。確保WCF Web服務的安全保持與Android和Silverlight的兼容性

所以我相信我應該激活SSL並且還向Web服務添加一種認證/授權形式。

現在我知道我可以打開我的web.config和IIS中的Windows身份驗證,它將自動使用PC登錄進行身份驗證。但我不知道在我使用Intranet以外的設備,特別是Android設備時,這是否是正確的解決方案。我不想爲我們團隊中的Android開發人員使用此身份驗證方法而無法獲得進展。那麼這在Android中很容易嗎?

當我添加安全性時,我發現很容易將其添加到與<transport clientCredentialType="Windows"basicHttpBinding,但這在customBinding內不起作用。與這些有什麼不同?

回答

2

我正在做一些與我的應用程序非常相似的東西。對於android方面,我們發送設備MobileUserId - 在我們的例子中,一個Guid,它唯一標識用戶。這僅保存在會話中。從那裏,每次打電話到服務也需要這個Guid是有效的。

爲了安全,你web.config應該有這些:

<service name="Service.System" behaviorConfiguration="ServiceBehaviour"> 
<endpoint address="" binding="webHttpBinding" bindingConfiguration="TransportSecurity" contract="Service.ISystem" behaviorConfiguration="web"></endpoint> 
</service> 

<bindings> 
<webHttpBinding> 
<binding name="TransportSecurity"> 
<security mode="Transport"> 
<transport clientCredentialType="None"/> 
</security> 
</binding> 

即使你選擇不使用像一個Guid,或UUID在Java中,你仍然需要一些方法來傳遞一個用戶名/密碼來自android設備的組合 - 它不適用於Windows身份驗證。

你也應該看看RESTSOAP。我發現REST更容易使用,所以我對此更喜歡。