Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET核心CORS配置不适用于Firefox_C#_Asp.net Core_Asp.net Core 3.0 - Fatal编程技术网

C# ASP.NET核心CORS配置不适用于Firefox

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

我的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)
{
    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身份验证?如果是这样,选项调用将在没有身份验证的情况下执行,因此您应该允许匿名访问站点或未启用身份验证的特定调用。