2017-09-06 24 views
0

here最新のトークンを探していました。Microsoft Graphでリフレッシュトークンを見つけることができません

私は、アクセストークン取得するには、このコードを持っている:

if(bPromptUser) 
{ 
    _AuthResult = await PublicClientApp.AcquireTokenAsync(_scopes); //Opens Microsoft Login Screen 

    using (RegistryKey key = Registry.CurrentUser.CreateSubKey(keyName)) 
    { 
     key.OpenSubKey(keyName, true); 
     key.SetValue("Status", _AuthResult.AccessToken); 
     key.SetValue("Expire", _AuthResult.ExpiresOn.ToLocalTime().ToString()); 
     key.Close(); 

     token = _AuthResult.AccessToken; 
    } 

    // Append the access token to the request. 
    requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token); 
} 

をしかし、私の_AuthResultは、実際には、リスト内のRefreskTokenを持っていません。これは、のMicrosoft Graphのv1を使用しているためですか?

更新

は、ドキュメントによるとの回答で提案されている範囲は、デフォルトでオンになって?あなたは、デフォルトでリフレッシュトークンを取得していないMSALを使用して(とv2認証エンドポイント)とき、私は信じてい

enter image description here

答えて

0

に役立ちます。

これをプロジェクトに追加し、インスタンスを追加します。次に、パスを設定します。このように:

TokenCacheHelper.CacheFilePath = Program.Options.TokenCachePath; 
PublicClientApp = new PublicClientApplication(_AppID, "https://login.microsoftonline.com/common", TokenCacheHelper.GetUserCache()); 

これだけです。キャッシュファイルには、リフレッシュトークンを含むすべてのトークンの詳細が含まれます。

詳細は会話hereにあります。一部には:

限り必要に あなたは、トークンキャッシュの内容を保存するために、トークンキャッシュを実装するために助けることなど:

  1. コピープロジェクトに、ここからTokenCacheHelper
  2. あなたは本当にレジストリにキャッシュの内容を保存したい場合は、実装の変更 :レジストリfromthe を読む代わりに、ファイルthis line
  3. BeforeAccessNotificationの レジストリへの書き込みを
    • AfterAccessNotificationを代わりに、ファイルのthis line
  4. 示すように、あなたの PublicClientApplicationを構築ここに(あなたがTokenCacheHelper.GetUserCache()を呼び出すことによって取得 キャッシュを渡す: https://github.com/Azure-Samples/active-directory-dotnet-desktop-msgraph-v2/blob/master/active-directory-wpf-msgraph-v2/App.xaml.cs#L19

    clientApp = new PublicClientApplication(ClientId, "https://login.microsoftonline.com/common", TokenCacheHelper.GetUserCache());

0

。リフレッシュトークンを取得するには、offline_accessスコープと他のスコープを要求する必要があります。詳細はhttps://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#openid-permissionsをご覧ください。

希望これは、MicrosoftがTokenCacheHelperのためのサンプルコードを提供し、

+0

感謝。私はその話題を見ました。私のアップデートの質問をご覧ください。 –

+1

これを見て他の人に尋ねます。 –

+0

ありがとうございます。私は更新を楽しみにしています。 –

関連する問題