1

我正在測試Azure應用服務以創建網絡/移動應用。我正在使用xamarin.forms for mobile,用於移動訪問的App Services Mobile Services(C#服務器)和2個App Services Web Apps。Azure應用服務 - Google帳戶ID不匹配

服務器應用程序和兩個Web應用程序已配置爲使用谷歌驗證,使用相同的谷歌憑證按照指示操​​作:

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-how-to-configure-google-authentication/

我試圖獲取用戶ID爲登錄Google用戶,在網絡應用程序上,我獲得的格式爲112567911111837839502(與網絡應用程序1和網絡應用程序2匹配)的ID,但是當我通過移動設備使用相同的Google帳戶登錄時,我得到的格式爲sid :dc7a23bc80cb2752822351cf5a111111(均在移動客戶端和移動服務器項目中)

我使用的Web應用程序的代碼和移動服務器項目獲得的ID是一樣的:

var claimsPrincipal = this.User as ClaimsPrincipal; 
     string sid = claimsPrincipal.FindFirst(ClaimTypes.NameIdentifier).Value; 

任何人都可以提出一個方式來獲得移動和Web應用程序匹配ID?我原以爲這將是Azure的應用程序服務的主要思想之一

感謝

馬克

回答

0

找到這個鏈接的回答,「如何:檢索驗證的用戶信息」

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-dotnet-backend-how-to-use-server-sdk/#how-to-work-with-authentication

下面的代碼從控制器的工作原理

GoogleCredentials cred = await this.User 
      .GetAppServiceIdentityAsync<GoogleCredentials>(this.Request); 
     var googleId = cred.UserClaims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value; 

希望這有助於其他人看爲此

1

你可以得到/.auth/me端點(https://yoursite.azurewebsites.net/.auth/me) - 這會給你一個JSON對象你可以分析谷歌正在返回的聲明。你的UserId將會在那裏。

+0

有沒有任何如何做到這一點的例子?這不是我熟悉的 – Mark