【发布时间】:2018-05-02 20:13:14
【问题描述】:
所以这里是对我的问题的快速解释 - 我当前的设置是使用 ASP.NET Core Identity、受它保护的 API 资源和作为客户端的 Xamarin.Android 应用程序的 IdentityServer4 实现。我当前的问题是由于以下错误(来自 API 日志),客户端(Android)无法从 API 获取任何内容:
“承载者”未通过身份验证。失败消息:“IDX10205:颁发者验证失败。颁发者:'http://10.0.2.2:5000'。不匹配:validationParameters.ValidIssuer:'null' 或 validationParameters.ValidIssuers:'http://127.0.0.1:5000'。”
基本上,由于我使用的是 Android 模拟器,为了调用我机器上 localhost 上的内容,我需要使用 10.0.2.2 URL。然后问题就出现了——身份服务器可以通过身份验证,我可以正常登录,我得到了一个访问令牌,但之后我需要调用 API。这就是错误发生的地方 - 它期望一个具有相同权限(127.0.0.1:5000)但收到 10.0.2.2:5000 的颁发者,这是 Android 客户端的权限。
所以,我的问题是 - 有没有办法以某种方式指定 10.0.2.2 也是一个有效的颁发者,或者我是否必须开始考虑部署 API 和身份服务器,以便我可以测试客户端。如果有一种方法可以让整个解决方案在我的本地机器上运行,而不必为我想尝试的每一件小事进行部署,我真的很高兴。
非常感谢任何帮助。
【问题讨论】:
-
嗨!你有什么解决办法吗?
-
不,还没有真正有时间研究它 - 到目前为止,我的想法主要是尝试将应用程序部署到本地 IIS 并在防火墙中打开它,或者弄清楚如果我可以告诉应用程序信任任何进入端口 5000 的内容。我可能会在一些休息日尝试修复此问题,因为这是针对个人项目,而不是与工作相关的项目。
-
好的,谢谢您的回复。是的,我想最简单的方法是将应用程序部署在本地开发服务器上并访问这些 URL。这就是我现在正在做的事情,而且效果很好!
标签: android api android-emulator identityserver4 asp.net-core-2.0