首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET web应用编程接口核心中全局启用CORS

如何在ASP.NET web应用编程接口核心中全局启用CORS
EN

Stack Overflow用户
提问于 2017-03-15 04:00:49
回答 1查看 778关注 0票数 6

我找到了这个网站:

https://docs.microsoft.com/en-us/aspnet/core/security/cors

然而,我对如何在全球范围内启用它感到困惑,因为似乎有两种方法可以做到这一点,这两种方法之间有什么区别?或者他们做了两件不同的事情?

代码语言:javascript
复制
public IConfigurationRoot Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            //https://docs.microsoft.com/en-us/aspnet/core/security/cors
            services.AddCors(options =>
            {
                options.AddPolicy("AllowSpecificOrigin",
                    builder => builder.WithOrigins("http://example.com")
                                        .AllowAnyHeader()
                    );
            });

            services.Configure<MvcOptions>(options =>
            {
                options.Filters.Add(new CorsAuthorizationFilterFactory("AllowSpecificOrigin"));
            });

            // Add framework services.
            services.AddMvc();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            app.UseCors("AllowSpecificOrigin");

            app.UseMvc();
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-15 04:04:45

ConfigureServices中的调用只是添加Cors服务,而不是设置它(包括创建hte策略)。通过添加过滤器,您可以使其成为全局的,但我知道UseCors (在Configure中)是全局添加它的首选方法。过滤器代码所做的就是强制所有控制器上的属性,而UseCors实际上做了同样的事情,只是在堆栈的不同部分。我相信UseCors将不仅仅为MVC调用做这件事,这就是它不同的原因。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42795467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档