0

我按照https://dev.outlook.com/RestGettingStarted/Tutorial/dotnet提供的说明将我的 Web 应用程序与用户的 Outlook 日历集成。我被重定向到登录我的 microsoft 帐户,它返回到我的返回 url,并填充了 code 参数。但是,当我尝试从该代码中生成令牌时,它返回空而没有任何错误。

有人可以建议吗?

以下代码是从代码生成令牌:

            // Note the function signature is changed!
            public async Task<ActionResult> Authorize()
            {
                // Get the 'code' parameter from the Azure redirect
                string authCode = Request.Params["code"];

                string authority = "https://login.microsoftonline.com/common";
                string clientId = System.Configuration.ConfigurationManager.AppSettings["ida:ClientID"];
                string clientSecret = System.Configuration.ConfigurationManager.AppSettings["ida:ClientSecret"];
                AuthenticationContext authContext = new AuthenticationContext(authority);

                // The same url we specified in the auth code request
                Uri redirectUri = new Uri(Url.Action("Authorize", "Home", null, Request.Url.Scheme));

                // Use client ID and secret to establish app identity
                ClientCredential credential = new ClientCredential(clientId, clientSecret);

                try
                {
                    // Get the token
                    var authResult = await authContext.AcquireTokenByAuthorizationCodeAsync(
                        authCode, redirectUri, credential, scopes);

                    // Save the token in the session
                    Session["access_token"] = authResult.Token;

                    // Try to get user info
                    Session["user_email"] = GetUserEmail(authContext, clientId);

                    return Content("Access Token: " + authResult.Token);
                }
                catch (AdalException ex)
                {
                    return Content(string.Format("ERROR retrieving token: {0}", ex.Message));
                }
            }
4

0 回答 0