2017-05-09 54 views
0

我有幾年前編寫的Windows 8/RT應用程序,其中使用Azure移動服務和Live SDK通過用戶的Microsoft帳戶驗證用戶身份。UWP中的傳統驗證延續

現在我從頭開始重寫UI作爲UWP應用程序,我正在認真努力地弄清楚如何實現身份驗證,現在,當用戶將數據保存在1版本的應用程序中時,我可以在其他版本中顯示給他們。 似乎MS推動我們到Azure AD,但我找不到幫助我的所有示例,而我發現的所有示例都不支持UWP或Azure不再支持。

我可以請一些指導....在哪裏可以找到當前支持的代碼示例?

回答

0

這比我們想象的要困難得多,而且我認爲,事情變化的速度有多快,保持文檔更新的困難,以及與搜索引擎很容易提供瀏覽次數最高的信息,在這種情況下,這些信息已經過時並且不再適用,並且不再有效。

就布魯斯的回答,我試了一下。首先,我的移動應用似乎已自動遷移到Azure中的應用服務。其次,Microsoft Graph實現將進行身份驗證,但創建斷開連接,因爲身份驗證過程返回的信息與我用於唯一標識用戶的Live SDK返回的信息不匹配。因此,使用Graph實現將我的用戶從他們要求我爲他們存儲的所有數據中斷開。第三,第二段(儘管是在6個月前編寫的)中鏈接的文章已過時,使用諸如「經典」Azure門戶等過時的工具,並假設您創建了一個新應用程序,從而允許模板做得很好交易的配置和我需要的。

儘管如此,我真的很感謝Bruce的努力。

去年,我使用OneDrive SDK在UWP應用程序中實施了auth。我在新應用程序中遇到了兩個問題:

  1. 去年使用的版本是舊版本(1.15版本2.0.6)...正如絕大多數有關使用我可以在互聯網上找到的SDK。一切似乎都是關於不再存在的OneDriveClientExtensions類。但我並不特別想要卡住2015年的版本,永遠無法升級。由於最新版本已經6個月大了,無論如何我都有點害怕。
  2. 爲了驗證目的,最新版本還需要安裝Microsoft.OneDriveSDK.Authentication軟件包。這是最近5個月前更新的版本,但依賴於版本爲3.13的Microsoft.IdentityModel.Clients.ActiveDirectory v2(雖然看起來v2仍在使用中)。這成爲一個真正的痛苦之處在於UWP社區工具包服務庫需要同一個軟件包的v3版本,因此您不能同時在同一個項目中安裝Toolkit Services和OneDriveSDK身份驗證軟件包。幸運的是,由於我無法讓UWP服務庫做我想做的事,所以我並不需要它。

所以,我從溶液中取出UWP服務包並安裝了最新的OneDrive SDK包,在互聯網翻遍尋找如何使用那個版本,我終於找到了這樣的例子:

var scopes = new string[] { "wl.signin" }; 
var client = new OnlineIdAuthenticationProvider(scopes); 
await client.AuthenticateUserAsync(); 

然後,您可以訪問客戶端的CurrentAccountSession屬性以獲取UserId。

現在,我確定這是一個臨時解決方案,因爲最終,OneDrive SDK將會過時,我需要使用一些依賴於ActiveDirectory包的v3的庫,但在此之前,這會起作用。

0

根據你的描述,我檢查了Live SDK,發現最新的版本是v5.6.3,最後在週三,7月8日,2015年。另外,我已經檢查這個LIB不能在我的UWP應用程序更新工作(目標版本:Windows 10.0; Build 10240)。

我認爲您可以通過Azure AD v2.0端點與Microsoft帳戶進行身份驗證來調用Microsoft Graph。有關更多詳細信息,請參閱Get started with Microsoft Graph in a universal Windows 10 app和此git sample

或者你可以migrate your azure mobile service to azure app service並配置服務器端,然後參考官方tutorial關於添加身份驗證到您的Windows應用程序。