使用在 Azure 应用服务中运行的代码,我尝试在命令行应用程序中获取 OAuth 访问令牌。
这是我的代码:
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithClientSecret(clientSecret)
.WithAuthority(new Uri(authority))
.Build();
string accessToken ="";
try
{
AuthenticationResult authResult = await app.AcquireTokenForClient(scopes).ExecuteAsync();
accessToken = authResult.AccessToken;
}
catch (MsalServiceException ex)
{
Console.WriteLine($"Service error occurred: {ex.Message}");
}
catch (MsalClientException ex)
{
Console.WriteLine($"Client error occurred: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"An unexpected error occurred: {ex.Message}");
}
它在
AcquireTokenForClient
方法调用时退出且没有错误。我不明白为什么执行会终止。不会引发任何错误,并且返回码为零。如果我找错了树,好吧。我愿意接受建议。我需要访问令牌,以便我可以将其与交换 Web 服务对象一起使用。
Azure App Service 中的所有示例代码都假设您有 Web 应用程序,并且 Web 应用程序始终使用隐式或混合身份验证流类型,并且它们都需要重定向到 OAuth 登录页面,然后重定向回 OAuth 登录页面。登录后的应用程序。
对于控制台应用程序,您不能按原样使用示例代码,因为您需要额外/不同的流类型。 请在这个 GitHub 上查看示例应用程序:
https://github.com/Azure-Samples/active-directory-dotnetcore-console-up-v2