Xamarin Android 系统浏览器的 MSAL.NET 使用注意事项
本文介绍将 Xamarin Android 上的系统浏览器与适用于 .NET 的 Microsoft 身份验证库 (MSAL.NET) 配合使用时的注意事项。
注意
MSAL.NET 版本 4.61.0 及更高版本不支持通用 Windows 平台 (UWP)、Xamarin Android 和 Xamarin iOS。 建议将 Xamarin 应用程序迁移到 MAUI 等新式框架。 阅读宣布即将弃用 MSAL.NET for Xamarin 和 UWP 中有关弃用的详细信息。
从 MSAL.NET 2.4.0 预览版开始,MSAL.NET 支持除 Chrome 之外的浏览器。 它不再要求在 Android 设备上安装 Chrome 进行身份验证。
建议使用支持自定义标签页的浏览器。 下面是这些浏览器的一些示例:
提供自定义标签页支持的浏览器 | 包名称 |
---|---|
Chrome | com.android.chrome |
Microsoft Edge | com.microsoft.emmx |
Firefox | org.mozilla.firefox |
Ecosia | com.ecosia.android |
Kiwi | com.kiwibrowser.browser |
Brave | com.brave.browser |
除了标识提供自定义标签页支持的浏览器之外,我们的测试还表明,一些不支持自定义标签页的浏览器也适用于身份验证。 这些浏览器包括 Opera、Opera Mini、InBrowser 和 Maxthon。
测试的设备和浏览器
下表列出了经过身份验证兼容性测试的设备和浏览器。
设备 | 浏览者 | 结果 |
---|---|---|
Huawei/One+ | Chrome* | 通过 |
Huawei/One+ | Edge* | 通过 |
Huawei/One+ | Firefox* | 通过 |
Huawei/One+ | Brave* | 通过 |
One+ | Ecosia* | 通过 |
One+ | Kiwi* | 通过 |
Huawei/One+ | Opera | 通过 |
Huawei | OperaMini | 通过 |
Huawei/One+ | InBrowser | 通过 |
One+ | Maxthon | 通过 |
Huawei/One+ | DuckDuckGo | 用户已取消身份验证 |
Huawei/One+ | UC 浏览器 | 用户已取消身份验证 |
One+ | Dolphin | 用户已取消身份验证 |
One+ | CM 浏览器 | 用户已取消身份验证 |
Huawei/One+ | 未安装任何内容 | AndroidActivityNotFound exception |
* 支持自定义选项卡
已知问题
如果用户未在设备上启用浏览器,MSAL.NET 会引发 AndroidActivityNotFound
异常。
- 缓解措施:要求用户在其设备上启用浏览器。 建议使用支持自定义标签页的浏览器。
如果身份验证失败(例如,如果身份验证在启动时使用了 DuckDuckGo),MSAL.NET 会返回 AuthenticationCanceled MsalClientException
。
- 根本问题:未在设备上启用支持自定义标签页的浏览器。 使用无法完成身份验证的浏览器启动了身份验证。
- 缓解措施:要求用户在其设备上启用浏览器。 建议使用支持自定义标签页的浏览器。
后续步骤
有关详细信息和代码示例,请参阅在 Xamarin Android 上的嵌入式 Web 浏览器与系统浏览器之间选择和嵌入式 Web UI 与系统 Web UI。