c# - 主应用程序包含子应用程序但令牌未通过
问题描述
我有 2 个子应用程序,当我单独运行每个应用程序时,它们被配置为使用身份服务器 v4,并且身份验证流程(隐式)按预期工作。每个应用程序都被重定向到身份服务器登录页面。
现在我有一个容器应用程序,其中包含指向其他应用程序的链接,如下所示:
<div class="navbar">
<ul>
<a href="#/app1">
<li>
App 1
</li>
</a>
<a href="#/app2">
<li>
App 2
</li>
</a>
</div>
现在,这个容器应用程序也使用隐式授权类型配置了身份服务器。
当我使用身份服务器登录然后单击以加载其中一个子应用程序时,我在身份服务器中收到以下错误:
用户未通过身份验证。
子应用程序的重定向 URL 看起来正确。
在 chrome 中,以下 URL 失败:
Access to fetch at ' http://localhost:59418/connect/authorize?client_id=alchemylab_singleSpaAccess_implicit&redirect_uri=http%3A%2F%2Flocalhost%3A5001%2Fsignin-oidc&response_type=id_token&scope=openid%20profile&response_mode=form_post&nonce=636867377068725779.MmY2MGU3ZjctOGY5Zi00OWQ3LWFlNmUtMTE2ZmMzY2JlNTNmM2U2ZTc3YTMtOGYxZi00YzQ4LWE0NjYtNzAwMzJlNDhiNDg0&state=CfDJ8Dif9mrvVj9At2AoKjgixXpfcTPQK9drG8hUZ4TTiBoT_XDOsPUg_fO63TfcTlbsknU1q6hYG1acfRToNRdjn8lX56it0XNQ0Y90itWy295U3V5T7w6b-uLvd3RPoOaexJpkQ36wbFWTF93i0Hz5fW0pzlmTv3BccslcoTR__QOu6X9SmPN95INQ1auYVtqTZcEkxrtBYeBSKrSvxVi -y778KcXgXDWmSAjxevSm6upVhzsNDtP4I3vLYjMMdMnoMZ-lDHZB0pEyfFL3JOgH9E8W_0SoWa7Tr8wTLWW47sZ3D75_ab1oZWTcM7vSZPO-WsbKb7ghmhQnpCWaiePidxY&x-client-SKU=ID_NETSTANDARD1_4&x-client-ver=5.2.0.0 ' (redirected from 'http://localhost:5001/api/authDetails ') 来自源“null”已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
虽然显示了 CORS 错误,但在应用程序中设置了 CORS。
如果我尝试直接运行上述 URL,我会看到以下错误:
处理请求时发生未处理的异常。例外:关联失败。位置不明
异常:处理远程登录时遇到错误。Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler.HandleRequestAsync()
我尝试将所有应用程序配置为使用授权类型混合,但我看到了相同的错误。
那么,为了让容器应用程序正常工作,我是否需要做更多的事情来确保每个应用程序都与身份服务器一起工作?
我的印象是,一旦主容器应用程序登录,令牌 ID 将被传递给子应用程序,并且新的访问令牌将被发送回子应用程序。
解决方案
推荐阅读
- wordpress - 如何使用参数更正重定向 url 并更改语言
- css - 如何禁用单击以在纯 CSS 滑块上前进
- react-native - 响应式 React-native-web 布局
- powershell - 路径被拒绝,无法运行 ps1 脚本
- json - 如何使用jmeter在json输入中给出多个对象进行测试
- vb.net - For Each 循环不会因 VB.NET 中的 Try Catch 而中断
- html - 我更新了主题,但现在字体不起作用?这是怎么回事?
- c# - unity“无法加载关联脚本”和“Win32Exception:系统找不到指定的文件”
- python - 如何从谷歌电子表格单元格下载纯文本?
- mysql - 带有特殊字符的转换器名称 URI 从 PostgreSQL 函数到 MySQL