Identity Server 4 没有为 .well-known/openid-configuration 设置 `Access-Control-Allow-Origin`
Identity Server 4 not setting `Access-Control-Allow-Origin` for `.well-known/openid-configuration`
政策制定者:
private CorsPolicy GenerateCorsPolicy()
{
var corsBuilder = new CorsPolicyBuilder();
corsBuilder.AllowAnyHeader();
corsBuilder.AllowAnyMethod();
corsBuilder.AllowAnyOrigin();
return corsBuilder.Build();
}
正在向容器添加策略
services.AddCors(
options =>
{
options.AddPolicy("AllowAllOrigins", GenerateCorsPolicy());
});
告诉 Identity Server 使用此策略:
options.Events.RaiseErrorEvents = true;
options.Events.RaiseInformationEvents = true;
options.Events.RaiseFailureEvents = true;
options.Events.RaiseSuccessEvents = true;
options.Cors.CorsPolicyName = "AllowAllOrigins";
将应用程序的其余部分配置为也使用此策略:
app.UseRouting();
app.UseIdentityServer();
app.UseAuthorization();
app.UseEndpoints(
endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
app.UseStaticFiles();
app.UseCors("AllowAllOrigins");
Header 未设置:
您可以单独控制 IdentityServer 中的 CORS,使用客户端定义中的 AllowedCorsOrigins 属性:
AllowedCorsOrigins =
{
"https://localhost:5001"
}
您的管道看起来也有点奇怪:
app.UseStaticFiles();
app.UseCors("AllowAllOrigins");
我看不出有任何理由在您的案例中的 UseEndpoints 中间件之后添加中间件。
管道看起来像这样,您的传入请求通过这个管道进行处理,每个中间件都可以对请求采取行动,它看起来像这样:
政策制定者:
private CorsPolicy GenerateCorsPolicy()
{
var corsBuilder = new CorsPolicyBuilder();
corsBuilder.AllowAnyHeader();
corsBuilder.AllowAnyMethod();
corsBuilder.AllowAnyOrigin();
return corsBuilder.Build();
}
正在向容器添加策略
services.AddCors(
options =>
{
options.AddPolicy("AllowAllOrigins", GenerateCorsPolicy());
});
告诉 Identity Server 使用此策略:
options.Events.RaiseErrorEvents = true;
options.Events.RaiseInformationEvents = true;
options.Events.RaiseFailureEvents = true;
options.Events.RaiseSuccessEvents = true;
options.Cors.CorsPolicyName = "AllowAllOrigins";
将应用程序的其余部分配置为也使用此策略:
app.UseRouting();
app.UseIdentityServer();
app.UseAuthorization();
app.UseEndpoints(
endpoints =>
{
endpoints.MapControllers();
endpoints.MapRazorPages();
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
app.UseStaticFiles();
app.UseCors("AllowAllOrigins");
Header 未设置:
您可以单独控制 IdentityServer 中的 CORS,使用客户端定义中的 AllowedCorsOrigins 属性:
AllowedCorsOrigins =
{
"https://localhost:5001"
}
您的管道看起来也有点奇怪:
app.UseStaticFiles();
app.UseCors("AllowAllOrigins");
我看不出有任何理由在您的案例中的 UseEndpoints 中间件之后添加中间件。
管道看起来像这样,您的传入请求通过这个管道进行处理,每个中间件都可以对请求采取行动,它看起来像这样: