1 回答
TA贡献1906条经验 获得超10个赞
首先,您所引用的 Microsoft Docs 指南中的步骤向 Azure AD注册一个Native应用程序,然后使用Delegated Permissions. 所以有代码提示用户登录并输入他们的凭据。
现在这段代码可以与 .NET Framework(完整)控制台应用程序完美配合,但不能与 .NET Core 配合使用。
static void Main(string[] args)
{
var authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/{tenant id}");
var result = authenticationContext.AcquireTokenAsync("https://management.azure.com/", "{application id}", new Uri("{redirect uri}"), new PlatformParameters(PromptBehavior.Auto)).Result;
.NET Core 的根本问题是它不提供 UI 功能,因此 .NET Core 并不真正支持交互式流程。
这也是您必须从中删除的原因PromptBehavior.Auto,new PlatformParameters(PromptBehavior.Auto)因为这会破坏 .NET Core。
您可以在下面提到的参考资料中找到更多信息:
这是 GitHub 上的一个线程,其代码与您的代码非常相似Interactive authentication in .net core 2.0 console application on windows
GitHub 上的 ADAL 文档。看清楚说Except for .NET Core, which does not provide any user interaction
附带一提,我知道.NET Core 3.0即将支持 Windows 桌面应用程序,但它仍处于预览阶段。
在未来,交互式流程应该与 .NET Core 3.0 和MSAL.NET(不同于ADAL.NET)一起工作。
此处有更多详细信息:ADAL 不正确支持 .NET Core 3
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报