簡體   English   中英

如何在 .net core 3.1 中刪除一個 Controller Action 的 CORS 限制

[英]How to remove CORS restriction for one Controller Action in .net core 3.1

如何刪除一個控制器操作的 CORS 限制

我已經在一個地方為所有控制器/所有操作的應用程序之一實施了 CORS。 但不知道如何僅針對單個控制器取消此限制

我在另一個地方的代碼是

public static IWebHostBuilder BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args).
            ConfigureKestrel(serverOptions =>
            {
            }).UseIISIntegration()
            .UseStartup<StartupShutdownHandler>();
        private const string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";

        public StartupShutdownHandler(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }        
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            CorsRelatedPolicyAddition(services);
            services.Configure<ForwardedHeadersOptions>(options =>
            {
                options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
            });        }

        private void CorsRelatedPolicyAddition(IServiceCollection services)
        {

                services.AddCors(options =>
                {
                    options.AddPolicy(MyAllowSpecificOrigins, builder => { builder.AllowedAnyOrigins().AllowAnyMethod().AllowAnyHeader(); });
                });

        }        
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime applicationLifetime)
        {...


            app.UseCors(MyAllowSpecificOrigins);

            ..

        }

對於整個控制器(其中的所有方法)

[EnableCors(origins: "http://www.example.com", headers: "*", methods: "*")]
 public class TestController : ApiController
 {
    // Controller methods not shown...
 }

僅針對特定方法

[EnableCors(origins: "http://www.example.com", headers: "*", methods: "*")]
public HttpResponseMessage GetItem(int id) { ... }

有關更多詳細信息,請參閱此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM