C# ASP.NET核心CORS配置不适用于Firefox
我的ASP.NET核心(dotnet SDK 3)应用程序具有以下CORS配置。我所观察到的是,这种配置对于Google Chrome(版本76.0.3809.100 64位)非常有效。Mozilla Firefox Developer Edition(版本69.0b14 64位)的响应标题中缺少访问控制允许源代码。事实上,没有任何回应。有什么解决办法吗C# ASP.NET核心CORS配置不适用于Firefox,c#,asp.net-core,asp.net-core-3.0,C#,Asp.net Core,Asp.net Core 3.0,我的ASP.NET核心(dotnet SDK 3)应用程序具有以下CORS配置。我所观察到的是,这种配置对于Google Chrome(版本76.0.3809.100 64位)非常有效。Mozilla Firefox Developer Edition(版本69.0b14 64位)的响应标题中缺少访问控制允许源代码。事实上,没有任何回应。有什么解决办法吗 public void ConfigureServices(IServiceCollection services) { servic
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers()
.AddNewtonsoftJson();
services.AddCors();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseCors(builder =>
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
);
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
我发现了这个问题,这是一个非常奇怪的问题。我在读一篇老博客,里面谈到CORS和ASP.NET核心。然后我偶然发现了一个说法,这个解决方案对Kestrel有效,但对IIS Express无效。因此,我更改了构建配置,不使用IIS Express,它现在可以完美地适用于两种浏览器。如果希望此操作适用于IIS Express,则您不需要编辑
Startup.cs
,而是编辑application.config
文件,该文件可能位于项目根文件夹中。您是否在IIS Express安装程序中启用了windows身份验证?如果是这样,选项调用将在没有身份验证的情况下执行,因此您应该允许匿名访问站点或未启用身份验证的特定调用。