2017-03-14 27 views
5

küresel asp.net web API çekirdek CORS nasıl etkinleştirilir: bunu yapmak için 2 yol vardır görünüyor, çünkü küresel etkinleştirmek için nasıl karıştı Ancak https://docs.microsoft.com/en-us/aspnet/core/security/corsBu siteyi buldum

naber Bu 2 yol arasındaki fark? ya da 2 farklı şey yaparlar?

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(); 
     } 
+0

Luis, netlik sağlamak için kod blokunuzu iki yoldan ayırır mısınız? – ahsteele

+0

Niçin tek cevabı doğru olarak işaretlediniz ve üzerine bir ödül verdiniz. ** Güvenilir ve/veya resmi kaynaklardan bir cevap çizimi mi arıyorsunuz. **? –

+0

bir hataydı, ama nasıl düzelteceğimi göremiyorum., Kelleyi nasıl kaldırabilirim? –

cevap

4

ConfigureServices içinde aramaları sadece (Hte politikasını oluştururken dahil) kurmak değil, CORS hizmetlerini ekler. Filtreyi ekleyerek onu global hale getiriyorsunuz, ancak UseCors'un (Configure'da) global olarak eklemenin tercih edilen yolu olduğunu anlıyorum. Filtre kodunun yaptığı tüm özellik, tüm denetleyicilerin özniteliğini zorlar ve UseCors, aynı şeyi yalnızca yığının farklı bir bölümünde yapar. UseCors'un bunu MVC çağrılarından daha fazlası için yapacağına inanıyorum, bu yüzden farklı.

İlgili konular