Asp.net core 从.net core 2.2迁移到.net core 3.0时出现CORS问题

Asp.net core 从.net core 2.2迁移到.net core 3.0时出现CORS问题,asp.net-core,Asp.net Core,当我从.net core 2.2迁移到.net core 3.0时,我遇到了cors问题 public void Configure(IApplicationBuilder app, IHostEnvironment env, Microsoft.AspNetCore.Hosting.IApplicationLifetime applicationLifetime) { NLog.LogManager.Configuration = new NLogL

当我从.net core 2.2迁移到.net core 3.0时,我遇到了cors问题

  public void Configure(IApplicationBuilder app, IHostEnvironment env, Microsoft.AspNetCore.Hosting.IApplicationLifetime applicationLifetime)
        {
            NLog.LogManager.Configuration = new NLogLoggingConfiguration(Configuration.GetSection("NLog"));
            LogManager.Configuration.Variables["connectionString"] = Encryptor.GetNLogDB();
            LogManager.Configuration.Variables["ApplicationName"] = env.ApplicationName;
            LogManager.Configuration.Variables["EnvironmentType"] = env.EnvironmentName;
            app.UseStaticFiles();
            app.UseRouting();
            app.UseCors("AllowAll");

            applicationLifetime.ApplicationStopping.Register(OnShutdown);
            applicationLifetime.ApplicationStarted.Register(OnStarted);

            app.UseAuthentication();
            app.UseAuthorization();
            app.UseLogAndExceptionHandler();

            //app.UseCors();
            //app.UseSignalR(routes =>
            //{
            //    routes.MapHub<ApplicationHub>(SignalRHub);
            //    routes.MapHub<QuillHub>(QuillHub);
            //});
            app.UseEndpoints(endpoints => {
                endpoints.MapControllers();
            });
            //app.UseMvc();

            Initialize(app);
        }

public void ConfigureServices(IServiceCollection services)
        {
services.AddCors(options =>
            {
                options.AddPolicy("AllowAll",
                    builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials());
            });
}
public void配置(IApplicationBuilder应用程序、IHostEnvironment环境、Microsoft.AspNetCore.Hosting.IApplicationLifetime应用程序LifeTime)
{
NLog.LogManager.Configuration=新的NLogLoggingConfiguration(Configuration.GetSection(“NLog”);
LogManager.Configuration.Variables[“connectionString”]=Encryptor.GetNLogDB();
LogManager.Configuration.Variables[“ApplicationName”]=env.ApplicationName;
LogManager.Configuration.Variables[“EnvironmentType”]=env.EnvironmentName;
app.UseStaticFiles();
app.UseRouting();
附录UseCors(“AllowAll”);
applicationLifetime.ApplicationStopping.Register(OnShutdown);
applicationLifetime.ApplicationStarted.Register(OnStarted);
app.UseAuthentication();
app.UseAuthorization();
app.UseLogAndExceptionHandler();
//app.UseCors();
//app.usesigner(路由=>
//{
//路线:MapHub(SignalRHub);
//路线:MapHub(QuillHub);
//});
app.UseEndpoints(端点=>{
endpoints.MapControllers();
});
//app.UseMvc();
初始化(app);
}
public void配置服务(IServiceCollection服务)
{
services.AddCors(选项=>
{
options.AddPolicy(“AllowAll”,
builder=>builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials());
});
}
运行此命令时,我收到一个错误,表示我不能同时使用AllowOnOrigin和AllowCredentials,当我删除其中任何一个命令时,运行时错误已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:响应中的“访问控制允许来源”头的值不得为当请求的凭据模式为“包括”时,使用通配符“*”。XMLHttpRequest启动的请求的凭据模式由withCredentials属性控制


我希望允许所有来源。

基于,AllowOnOrigin和AllowCredentials不能一起使用

尝试使用
SetIsOriginAllowed
作为解决方法

services.AddCors(options =>
        {
            options.AddPolicy("AllowAll",
                builder => builder.AllowAnyMethod()
                                  .AllowAnyHeader()
                                  .SetIsOriginAllowed(_ => true)
                                  .AllowCredentials());
        });

基于,AllowOnOrigin和AllowCredentials不能一起使用

尝试使用
SetIsOriginAllowed
作为解决方法

services.AddCors(options =>
        {
            options.AddPolicy("AllowAll",
                builder => builder.AllowAnyMethod()
                                  .AllowAnyHeader()
                                  .SetIsOriginAllowed(_ => true)
                                  .AllowCredentials());
        });