MSAL возвращает нулевого пользователя после успешного получения токенов с кодом авторизации - PullRequest
0 голосов
/ 11 апреля 2019

В следующем коде GetUserAccount возвращает нулевого пользователя, даже если предыдущий AcquireTokenByAuthorizationCode возвратил и токен доступа, и токен id. Я ожидал бы, что это будет ненулевым. В моем более позднем коде сбор данных без вывода сообщений, очевидно, завершается неудачей, поскольку пользователь все еще равен нулю. Чего мне не хватает?

var code = ctx.Code;
string signedInUserID = ctx.AuthenticationTicket.Identity.FindFirst(System.IdentityModel.Claims.ClaimTypes.NameIdentifier).Value;
TokenCache userTokenCache = new MSALSessionCache(signedInUserID, ctx.OwinContext.Environment["System.Web.HttpContextBase"] as HttpContextBase).GetMsalCacheInstance();
var capp = new ConfidentialClientApplication(
    clientId,
    String.Format("https://login.microsoftonline.com/tfp/{0}.onmicrosoft.com/{1}/v2.0/.well-known/openid-configuration", "b2cdom", "B2C_1_BasicSUSI"
),
    "https://localhost:44368/",
    new ClientCredential(
        ConfigurationManager.AppSettings["ida:Secret"]),
        userTokenCache,
        null
);
capp.ValidateAuthority = false;
var tokens = await capp.AcquireTokenByAuthorizationCodeAsync(
    code,
    new string[] { "https://mrochonb2cprod.onmicrosoft.com/webapiill/read" }
);
var user = await capp.GetAccountAsync(signedInUserID);
...