0

Microsoft Graph API を使用して、Web アプリケーションに対してユーザーを認証しています。SO については、登録ポータルでテスト アプリケーションを登録しました。このポータルは、アプリケーション ID とアプリケーション シークレットを提供します。コードを受け取ってアクセス トークンを返すリダイレクト URLを定義 しました。

 public async Task<AuthToken> ExchangeCodeForAccessToken(string code)
    {
        MicrosoftGraphTokenResponse tokenResponse = null;
        using (HttpClient client = new HttpClient())
        {
            var postFormParameters = new List<KeyValuePair<string, string>>()
            {
                    new KeyValuePair<string, string>("client_id", _msGraphpParameter.AppId),
                    new KeyValuePair<string, string>("redirect_uri", _msGraphpParameter.RedirectUrl),
                    new KeyValuePair<string, string>("code", code),
                    new KeyValuePair<string, string>("grant_type", "authorization_code"),
                    new KeyValuePair<string, string>("scope", _msGraphpParameter.Scopes)
            };

            if (_msGraphpParameter.AppSecret != null)
            {
                // Secret isn't needed for client apps
                postFormParameters.Add(new KeyValuePair<string, string>("client_secret", _msGraphpParameter.AppSecret));
            }

            var formContent = new FormUrlEncodedContent(postFormParameters);
            client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", TokenRefreshContentType);

            HttpResponseMessage response = await client.PostAsync(MsGraphTokenRefreshUrl, formContent);
            string responseString = await response.Content.ReadAsStringAsync();
            tokenResponse = JsonConvert.DeserializeObject<MicrosoftGraphTokenResponse>(responseString);

        }
        return TransformMSGraphTokenResponseIntoAuthProperties(tokenResponse);
    }

私の問題は少し奇妙です。問題なくトークンにアクセスできます。つまり、適切なセットアップが行われています。ただし、いくつかの呼び出しの後 (2) Graph API は、ログイン ライブ ドットコムサーバーが見つからないため、何も返しません。

Cookie と DNS キャッシュを完全に消去しようとしましたが、うまくいきませんでしたが、ラップトップを再起動して電話をかけると、機能し始めたようです。数回呼び出した後も、Login.live.com サーバーが見つかりません。

ここにスナップショットがありますここに画像の説明を入力

考えを教えてください。ありがとう

4

0 に答える 0