我已经实施了 Microsoft 文档中推荐的“ASP.NET Core Blazor 混合身份验证和授权”以及 Duende IdentityServer。他们建议“不幸的是,移动应用程序不是存储秘密的好地方,移动应用程序代码、二进制文件或其他方式中存储的任何内容通常被认为是不安全的。”。所以我创建了一个由 MAUI 应用程序调用的 WebApi,WebApi 调用 IdentityServer。 MAUI 应用 -> MobileAuthController -> IdentityServer
我遇到的问题是当我在 Android 模拟器中运行 MAUI 应用程序时。我将 MAUI 应用调用的 URL 从 https://localhost:7001/mobileauth/oidc-android-emulator(MobileAuthController)更改为 https://10.0.2.2:7001/mobileauth/oidc-android-emulator 和我已经从 https://localhost:5001 (IdentityServer) 更改了 MobileAuthController 调用的 url。 MAUI App -> MobileAuthController 成功,但来自 MobileAuthController -> IdentityServer 的调用不适用于以下异常:
等待 Request.HttpContext.ChallengeAsync(方案);
---> System.Net.Http.HttpRequestException: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。 (10.0.2.2:5001)
相关资料:
MobileAuthController -> IdentityServer 的工作流在 Android Emulator 之外工作得很好。我尝试将 10.0.2.2:5001 保留为 localhost:5001,这导致 Android Emulator 浏览器无法找到该站点。我正在使用 Windows,所以我不能使用主机文件将 10.0.2.2 路由到本地主机。