我们启动网站,访问 IP 地址,登录,一切正常。如果你然后使用域名访问该站点,授权有效,但是在向服务器发送get / post请求时出现错误:“加载资源失败:服务器响应状态为401(未授权) ”
请注意,两种情况下的授权都是成功的。HttpClient 发送请求时发生错误。
如果服务器具有多个具有不同网络(例如本地和工作)的网络接口,则会出现同样的问题。该站点仅适用于一个网络。
该项目是基于标准模板创建的:Blazor WebAssembly 应用程序(核心托管)和身份服务器。
在文件 appsettings.json 中配置 Kestrel
{
...
"IdentityServer": {
"Clients": {
"BlazorAppCore5.Client": {
"Profile": "IdentityServerSPA"
}
},
"Key": {
"Type": "Development"
}
},
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "https://*:5001"
}
}
},
"AllowedHosts": "*"
}
我们发布项目并运行。
我们通过计算机名访问该站点并登录:“https://desktop-9thm5hg:5001/”
作品!现在我们转到 127.0.0.1 或 localhost:“https://127.0.0.1:5001/”
授权工作,“主页”和“柜台”页面正在工作。他们不使用 HttpClient。
现在转到页面 fetchdata。
注意力!如果您重新启动站点并首次访问“https://127.0.0.1:5001/”,它将无法在“https://desktop-9thm5hg:5001/”上运行。
检查 ASP.NET Core 3.1、5.0 版