2017-12-14 35 views
1

私はuwpコミュニティツールキットでOneDriveサービスを使用しています。 私はすべてのフォルダを取得できますが、ユーザーIDを取得する方法はわかりません(電子メールアドレスではなく、ユーザーを表す一意のIDを意味します)。uwpコミュニティツールキットでOneDriveサービスを使用してユーザーIDを取得する方法

誰が助けることができます、ありがとう。

if (await OneDriveService.Instance.LoginAsync()) 
{ 
    _appFolder = await OneDriveService.Instance.AppRootFolderAsync(); 
    ShowBusy(false); 
} 

答えて

1

デバッグのとき、私はない----プロバイダ---- AuthenticationProvider ---- CurrentAccountSession ----ユーザーID OneDriveService.Instanceに配置されたユーザIDを、見つけることが、やりますあなたはコミュニティツールキットのソースコードをチェックすると、それは

、あなたはCurrentAccountSessionがMsaAuthenticationProviderクラスに属していることがわかります取得する方法を知っています。このクラスはMicrosoft.OneDrive.Sdk.Authentication名前空間にあります。 UserIdを入手したい場合は、コミュニティツールキットのソースコードを変更し、自分でカスタムバージョンをコンパイルする必要があります。例えば

OneDriveService.csに、あなたはこの (_accountProvider as MsaAuthenticationProvider).CurrentAccountSession.UserIdよう MsaAuthenticationProvider_accountProviderを変換することができます。

0

ユーザー識別子を取得する方法はありません。あなたはそれを実装して、それに対するPRを上げることができます。そうすれば、問題が発生し、それがどのように起こるかを見ることができます。

https://github.com/Microsoft/UWPCommunityToolkit/issues

+0

デバッグ時に、OneDriveService.Instance ---- Provider ---- AuthenticationProvider ---- CurrentAccountSession ---- UserIdにあるユーザーIDが見つかりましたが、取得方法はわかりません – Vincent

+0

@Vincentコミュニティツールキットのソースコードをチェックすると、 'CurrentAccountSession'がMsaAuthenticationProviderクラスに属していることがわかります。このクラスは[Microsoft.OneDrive.Sdk.Authentication](https://github.com/OneDrive/onedrive-sdk-dotnet-msa-auth-adapter/blob/master/src/OneDrive.Sdk.Authentication.Common)にあります。 /MsaAuthenticationProvider.cs#L278)名前空間。あなたが 'UserId'を手に入れたいのであれば、コミュニティツールキットのソースコードを変更し、あなた自身でカスタムバージョンをコンパイルする必要があります。 –

+0

たとえば、[OneDriveService.cs](https://github.com/Microsoft/UWPCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.Services/Services/OneDrive/OneDriveService.cs#L193)で、 (MsaAuthenticationProviderとしての_accountProvider).CurrentAccountSession.UserId' –