如何在 WPF 用户控件中嵌入 AcquireTokenInteractive 提示
How to embed AcquireTokenInteractive prompt in a WPF UserControl
我有一个 Windows 桌面 WPF 应用程序,它使用 MSAL 库授权用户访问 Azure Active Directory。一切正常,除了用户选择帐户的提示有时会落后于应用程序(我假设用户在完成 MSAL 提示之前在任务栏中选择了不同的应用程序)。
我已经添加了 WithParentActivityOrWindow 选项并将其指向应用程序的主要 window,但这不会将提示附加到任何内容或强制它出现在应用程序前面。
是否可以执行以下操作之一,如果可以,怎么做?
- 每当应用程序是 'active' Windows 应用程序时强制提示接收焦点
- 在 WPF 用户控件中嵌入提示
作为参考,此处的示例代码与我使用的代码几乎相同:
https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-desktop-acquire-token-interactive?tabs=dotnet
编辑:我今天注意到 Visual Studio 在 OAuth 提示完成之前一直处于阻塞状态,但我不确定这是如何完成的,或者 Visual Studio 是否正在使用 MSAL 库。
如文档所述,AcquireTokenInteractive 应该在 UI 线程上 运行。我的应用程序嵌入到另一个应用程序中,所以一旦我在主应用程序的 UI 线程上更改对 运行 的调用,它就会按预期开始工作。
我有一个 Windows 桌面 WPF 应用程序,它使用 MSAL 库授权用户访问 Azure Active Directory。一切正常,除了用户选择帐户的提示有时会落后于应用程序(我假设用户在完成 MSAL 提示之前在任务栏中选择了不同的应用程序)。
我已经添加了 WithParentActivityOrWindow 选项并将其指向应用程序的主要 window,但这不会将提示附加到任何内容或强制它出现在应用程序前面。
是否可以执行以下操作之一,如果可以,怎么做?
- 每当应用程序是 'active' Windows 应用程序时强制提示接收焦点
- 在 WPF 用户控件中嵌入提示
作为参考,此处的示例代码与我使用的代码几乎相同: https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-desktop-acquire-token-interactive?tabs=dotnet
编辑:我今天注意到 Visual Studio 在 OAuth 提示完成之前一直处于阻塞状态,但我不确定这是如何完成的,或者 Visual Studio 是否正在使用 MSAL 库。
如文档所述,AcquireTokenInteractive 应该在 UI 线程上 运行。我的应用程序嵌入到另一个应用程序中,所以一旦我在主应用程序的 UI 线程上更改对 运行 的调用,它就会按预期开始工作。