用于调用 Web API 的桌面应用:获取令牌

生成公共客户端应用程序的实例后,你将使用它来获取一个令牌,然后使用该令牌调用 Web API。

Web API 由其 scopes 定义。 无论在应用程序中提供哪种体验,要使用的模式都是:

  • 通过调用 AcquireTokenSilent 系统性地尝试从令牌缓存中获取令牌。
  • 如果此调用失败,则使用所需的 AcquireToken 流(此处由 AcquireTokenXX 表示)。

在 MSAL.NET 中

AuthenticationResult result;
var accounts = await app.GetAccountsAsync();
IAccount account = ChooseAccount(accounts); // for instance accounts.FirstOrDefault
                                            // if the app manages is at most one account
try
{
 result = await app.AcquireTokenSilent(scopes, account)
                   .ExecuteAsync();
}
catch(MsalUiRequiredException ex)
{
  result = await app.AcquireTokenXX(scopes, account)
                    .WithOptionalParameterXXX(parameter)
                    .ExecuteAsync();
}

可以通过多种方式在桌面应用程序中获取令牌。


重要

如果用户需使用多重身份验证 (MFA) 来登录应用程序,则系统会改为阻止用户。

后续步骤

转到此方案中的下一篇文章:从桌面应用调用 Web API