代码之家  ›  专栏  ›  技术社区  ›  Andrew Truckle

无法使用Microsoft Graph定位刷新令牌

  •  0
  • Andrew Truckle  · 技术社区  · 7 年前

    我在找 here 刷新令牌 .

    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 在列表中。这是因为我使用的是v1吗 Microsoft图形

    使现代化

    enter image description here

    3 回复  |  直到 7 年前
        1
  •  0
  •   Dan Kershaw - MSFT    7 年前

    我相信当使用MSAL(和v2认证端点)时,默认情况下不会获得刷新令牌。要获取刷新令牌,您需要请求 offline_access 范围以及其他范围。请看 https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#openid-permissions 了解更多详细信息。

        2
  •  0
  •   Andrew Truckle    7 年前

    Microsoft提供的示例代码 TokenCacheHelper

    将其添加到项目中,并提供一个实例。然后,设置路径。这样地:

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

    这就是你需要做的一切。缓存文件包含所有令牌详细信息,包括刷新令牌。

    更多细节见对话 here

    您需要:

    1. 复制 令牌缓存助手
    2. 如果确实要将缓存的内容保存到注册表, 更改以下内容的实施:
    3. 构建 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());

        3
  •  0
  •   Jacob Sharp    3 年前

    对我来说,我的问题是使用旧版本的 Microsoft.Identity.Client 4.35.1 4.40.0