startup中 试试注释掉这一段话 app.UseHttpsRedirection();
现在尝试用了这种方式
var client = new HttpClient();
var disco = await httpClient.GetDiscoveryDocumentAsync(new DiscoveryDocumentRequest { Address = $"{Request.Scheme}://{Request.Host}", Policy = new DiscoveryPolicy { RequireHttps = false } });
//如果后续要使用到disco.TokenEndpoint这个,加多下面一个
disco.Policy.RequireHttps = false;
后续再研究看看全局问题
在受保护的api中
startup.cs 的ConfigureServices方法中
services.AddAuthentication("Bearer") .AddJwtBearer("Bearer", options => { options.Authority = Configuration["Id4Server"]; options.RequireHttpsMetadata = false; options.Audience = "consumeractivity.webapi"; });
options.RequireHttpsMetadata ,这个属性。
试验了好多办法都解决不了Chrome 80以上的samsite问题,必须https,很头疼。
以下issue最后也是必须https解决的。
https://github.com/skoruba/IdentityServer4.Admin/issues/532