我有一個由部署在Azure中的ADFS保護的wcf服務。我可以在我的控制檯應用程序中使用該服務。但是當我不確定如何在windows phone 7應用程序中使用該服務時。 在我的控制檯應用程序中,我正在檢索安全令牌並使用CreateChannelWithIssuedToken方法將該令牌傳遞給channelfactory對象。但在Windows Phone應用程序中沒有將令牌傳遞給wcf服務的方法。任何人都可以在這個問題上指導我? 在此先感謝。在Windows Phone應用程序中使用由adfs保護的wcf服務
回答
有一個培訓工具包(http://www.microsoft.com/download/en/details.aspx?displaylang=en & id = 8396)示例ACSAndWindowsPhone7可能有幫助(我沒有看過它詳細)。我知道Wade Wegner在ACS和WP7上有許多博客文章,但不確定他是否專門針對OAuth類型機制處理ADFS。
CreateChannelWithIssuedToken
是由.NET 3.5/4.0中的WIF程序集添加的擴展方法(我相信.NET 4.5現在大部分內容都已內置到System.ServiceModel名稱空間中)。由於您不會在手機上使用此功能,因此您無法使用常規的WCF方法來創建和使用頻道。
上的WinForms/WPF應用程序工作時,儘管在這種情況下,你必須把在WIF組件的選項這仍是如此。儘管如此,它並不是必需的,而且使用ADFS保護的服務對於常規的WCF類也是完全可行的。
的Windows Phone似乎支持這東西,雖與some caveats。縱觀擴展方法的實現,它似乎並不像他們做任何事情都花哨真:
public static T CreateChannelWithIssuedToken<T>(this ChannelFactory<T> factory, SecurityToken issuedToken)
{
return ChannelFactoryOperations.CreateChannelWithParameters<T>(factory, new FederatedClientCredentialsParameters
{
IssuedSecurityToken = issuedToken
});
}
public static T CreateChannelWithParameters<T>(ChannelFactory<T> factory, FederatedClientCredentialsParameters parameters)
{
ChannelFactoryOperations.VerifyChannelFactory<T>(factory);
T t = factory.CreateChannel();
((IChannel)t).GetProperty<ChannelParameterCollection>().Add(parameters);
return t;
}
的驗證方法只執行一些診斷,並拋出異常(例如,如果端點不是組)。 ChannelParameterCollection
在System.ServiceModel.Channels中定義,並且在Silverlight/WP7中受支持。而FederatedClientCredentialsParameters
沒什麼特別可以:
public class FederatedClientCredentialsParameters
{
public SecurityToken ActAs (get; set;)
public SecurityToken OnBehalfOf (get; set;)
public SecurityToken IssuedSecurityToken (get; set;)
}
好像你應該能夠創建一個頻道,正常使用的令牌有了它,甚至從WP7,但我怕我沒有確切的步驟這樣做。也許別人會這樣做,或者這可能會讓你朝着正確的方向前進。
This文章顯示瞭如何從Silverlight訪問受WIF保護的WCF服務,我想這與您在手機上的操作方式幾乎完全相同。
- 1. 調用由ACS保護WCF服務,它使用ADFS,由於IDP
- 2. 如何在.NET 4.5中使用ADFS來保護WCF Web服務?
- 3. 保護Windows Phone 7應用程序?
- 4. 如何保護Android應用程序將使用的WCF服務?
- 5. 在Windows Phone 8中使用Wcf服務
- 6. 保護服務器應用程序
- 7. Windows Phone後臺應用程序服務
- 8. 開發WCF服務和Windows Phone應用程序
- 9. 如何在windows phone7應用程序中使用wcf服務?
- 10. 在Windows應用程序中使用WCF服務?
- 11. 在Windows Phone 8中以編程方式使用WCF服務
- 12. 保護WCF服務
- 13. 保護WCF服務供iPhone使用
- 14. 使用Windows WCF服務在asp.net應用程序
- 15. WCF服務託管在Windows服務+ Silverlight + Silverlight應用程序
- 16. 如何在ADFS環境中通過Javascript調用外部ADFS保護SharePoint內的WCF服務?
- 17. 在Windows應用程序中調用WCF Web服務
- 18. 添加用於WCF服務和Windows Phone 7應用程序的枚舉類型
- 19. 如何確保在Windows Azure中運行的WCF服務,由AA的Windows訪問窗體應用程序
- 20. 託管的Windows服務中託管的WCF服務使用WCF服務應用程序連接
- 21. 在windows phone 7應用程序中添加php web服務
- 22. Windows Phone應用服務
- 23. 使用WCF的Windows Phone 8.1應用程序
- 24. WCF Web服務和Windows Phone
- 25. 如何確保WCF服務僅由特定應用程序使用?
- 26. 保持Windows服務和Windows Phone應用程序之間的連接存活
- 27. Windows Server 2016 ADFS和WCF服務
- 28. Silverlight應用程序中的WCF服務
- 29. 在我的應用程序(Windows Phone)中處理WCF
- 30. WCF:使用jQuery消耗WCF服務,也可以在Windows應用程序