Я получаю следующий стек ошибок в моем приложении, основанный на WebApp-graph-user sample . Я просто пытаюсь войти в систему и получить токен для User.ReadBasi c. Все графические разрешения. Я проверил все параметры, входящие в AcquireTokenByAuthorizationCode, и все это выглядело хорошо (без нулевых значений). Приложение - это MVC веб-приложение, использующее. net core 3.1.
stack:
NullReferenceException: Ссылка на объект не установлена для экземпляра объекта. Microsoft.Identity.Client.Internal.ClientCredentialWrapper.get_Thumbprint () учетные данные, bool sendCertificate). Microsoft.Identity.Client.Internal.JsonWebToken.Encode (учетные данные ClientCredentialWrapper, bool sendCertificate). .ClientCredentialHelper.CreateClientCredentialBodyParameters (ICoreLogger регистратор, ICryptographyManager cryptographyManager, ClientCredentialWrapper clientCredential, строка ClientID, AuthorityEndpoints конечные точки, BOOL sendX5 C) Microsoft.Identity.Client.OAuth2.TokenClient.SendTokenRequestAsyn c (IDictionary additionalBodyParameters, строка scopeOverride, строка tokenEndpointOverride, CancellationToken cancellationToken) Microsoft. .Identity.Client.Internal.Requests.RequestBase.RunAsyn c (CancellationToken cancellationToken) Microsoft.Identity.Client.ApiConfig. .TokenAcquisition. d.MoveNext () в WebAppServiceCollectionExtensions.cs + await tokenAcquisition.AddAccountToCacheFromAuthorizationCodeAsyn c (context, options.Scope) .ConfigureAwait (false); Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.RunAuthorizationCodeReceivedEventAsyn c (OpenIdConnectMessage authorizationResponse, ClaimsPrincipal пользователь, AuthenticationProperties свойства, JwtSecurityToken JWT) Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.HandleRemoteAuthenticateAsyn c ()
код : Из TokenAcquisition.cs - строка 127
// Do not share the access token with ASP.NET Core otherwise ASP.NET will cache it and will not send the OAuth 2.0 request in
// case a further call to AcquireTokenByAuthorizationCodeAsync in the future is required for incremental consent (getting a code requesting more scopes)
// Share the ID Token though
var result = await application
.AcquireTokenByAuthorizationCode(scopes.Except(_scopesRequestedByMsal), context.ProtocolMessage.Code)
.ExecuteAsync()
.ConfigureAwait(false);
context.HandleCodeRedemption(null, result.IdToken);