簡體   English   中英

客戶端WPF應用程序如何通過Azure上的WCF服務進行身份驗證?

[英]How does a client WPF application authenticate with a WCF service on Azure?

我目前正在考慮創建一個部署到azure雲的應用程序。 考慮Azure優於亞馬遜的主要原因是訪問控制服務。 我希望為我的應用程序接受盡可能多的不同憑據類型,尤其是Facebook。

一些用戶將使用基於HTML的應用程序,其他用戶將使用WPF客戶端應用程序。 問題是,如何使用他們想要的任何提供程序對客戶端進行身份驗證,然后與WCF服務進行通信。 我猜我需要在我的應用程序中使用Web瀏覽器組件,或彈出一個外部瀏覽器(理想情況下支持偏執用戶的兩個選項),但我不清楚如何將該連接用於WCF服務。

您正在尋找的是“活躍聯邦”。 看到這個問題

通常,您的Web客戶端將使用被動表單,在該表單中,它們被重定向到安全令牌服務所擁有的登錄頁面。 您無法重定向wpf或winforms應用程序,因此您的應用程序需要經歷您的瀏覽器在幕后為您執行的操作,包括協商和緩存您從STS收到的安全令牌,然后在每個請求中顯示它。

考慮將用戶的身份驗證與應用程序和WCF服務之間的身份驗證分開。

要保護對WCF服務的訪問,可以使用ACS通過簡單Web令牌(SWT)實現身份驗證。 有幾個例子可以通過您選擇的搜索引擎獲得。

對不起,我暫時不能給你一個更具體的例子。 我使用i-device移動,因此對工具的訪問權限有限。

我認為您打算如何驗證/授權用戶使用此WCF服務? 在這種情況下,您可以查看“Windows 7手機應用程序”示例: http//msdn.microsoft.com/en-us/library/gg983271.aspx 在這里,您將看到此示例使用“javascriptnotify”協議。

對於WPF WebBrowser控件,有很多文章描述了如何從DOM中的javascript獲取通知。

這樣,您可以獲得WPF應用程序的令牌,然后您將需要使用相同的令牌來驗證WCF服務。

對於Web應用程序,您可以從WSFam模塊獲取令牌。 一種方法是在WSFam上注冊SecurityTokenReceived事件。

對於這兩種情況,這種方式最終都可以使用SAML令牌。

然后,您可以為WCF創建自己的自定義SAML TokenProvider,並使用從ACS獲得的SAML令牌與您的服務器通信。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM