在 C# 命令行应用程序中使用 OAuth

问题描述 投票:0回答:1

使用在 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 服务对象一起使用。

c# oauth-2.0 console-application
1个回答
0
投票

Azure App Service 中的所有示例代码都假设您有 Web 应用程序,并且 Web 应用程序始终使用隐式或混合身份验证流类型,并且它们都需要重定向到 OAuth 登录页面,然后重定向回 OAuth 登录页面。登录后的应用程序。

对于控制台应用程序,您不能按原样使用示例代码,因为您需要额外/不同的流类型。 请在这个 GitHub 上查看示例应用程序:

https://github.com/Azure-Samples/active-directory-dotnetcore-console-up-v2

© www.soinside.com 2019 - 2024. All rights reserved.