我閱讀了這兩篇文章1. here和2. here,以瞭解在服務器上的API使用基於聲明的自定義授權時,如何對Azure移動應用程序執行身份驗證的最佳方式以及Xamarin客戶端調用它是使用MobileServiceClient
框架。我無法確定這些鏈接中的哪兩個例子是更好的方法。使用Xamarin的Azure移動應用程序身份驗證
在第一個鏈接中,似乎沒有像第二個鏈接那樣依賴特定於平臺的代碼,這意味着我不需要在Driod或IOS或Windows項目中編寫任何代碼,並且可以(我是否在這裏?) 另外,第一個鏈接似乎不需要像第二個鏈接那樣的提供者,因爲我正在調用對Url的直接服務調用。另一方面,第二個環節似乎只支持Facebook, Twitter, MicrosoftAccount, Google and WindowsAzureActiveDirectory
。強制MobileServiceAuthenticationProvider
參數似乎沒有針對基於用戶表的SQL Server提供自定義驗證。我不確定這部分,並且找不到其他文檔。
如果LoginAsync
不提供自定義驗證,那麼它明確表示我需要遵循InvokeApiAsync
路線。如果它提供了它,那麼問題是:我應該像第二個鏈接那樣在每個目標項目中編寫特定於平臺的(Droid/IOS/windows)代碼,還是應該處理類庫中的所有服務調用示例顯示在第一個鏈接?換句話說,我應該去LoginAsync
或InvokeApiAsync
?哪兩個是推薦的方式?
你能推薦覆蓋兩種登錄類型的任何模式嗎?我目前正在嘗試將所有身份驗證抽象到單獨的類庫,但遇到麻煩,因爲我需要在基本的可移植庫類中定義一個'Auth'接口,該接口從每個目標項目中抽取該接口的設備特定實現.Droid/.IOS /等)現在我的自定義身份驗證單獨存放在該類庫中,而其他Azure提供程序相關的登錄代碼則分佈在解決方案的其餘部分。 – user20358
我不得不放棄用於驗證的類庫,並將該代碼放入基本的可移植項目本身。我不確定這是否是好設計。 – user20358
我將我的ILoginProvider接口(它是平臺特定的代碼實現的基接口)放在基類中 - 不需要單獨的PCL。幾乎所有我寫的代碼都在PCL中。 –