DEV Community

Daniel Mezagini
Daniel Mezagini

Posted on • Updated on

Configurar CORS - ASP net core

Configurar CORS


Debido a que se debe interactuar desde el navegador a la API, la API cuenta con seguridad de tal manera que no dejará que otra dirección interactúe con el WS. Es por esa razón que debe configurarse el CORS.

Backend

Esta configuración se realiza en la clase **Startup**.

Declaras una variable sólo de lectura, al inicio de la clase:

public class Startup
{
    readonly string MiCors = "MiCors";
        ...
        ...
}
Enter fullscreen mode Exit fullscreen mode

Lo siguiente, es agregar la configuración del servicio en el método **ConfigureServices**:

services.AddCors(options =>
{
      options.AddPolicy(name: MiCors,
                        builder =>
                        {
                                builder.WithMethods("*");
                                builder.WithHeaders("*");
                            builder.WithOrigins("*");
                        });
});
Enter fullscreen mode Exit fullscreen mode

**builder.WithOrigins("*"); -** Es donde se le indica al CORS qué dirección tendrá interacción con el WS. Si se deja el asterisco como tal, permitirá la conexión de cualquier dirección.

Por último es necesario agregar el **app.Use**, esto al final de las instrucciones:

app.UseRouting();

app.UseCors(MiCors);

app.UseAuthorization();
Enter fullscreen mode Exit fullscreen mode

startup

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.OpenApi.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WSVenta.models;

namespace WSVenta
{
    public class Startup
    {
        readonly string MiCors = "MiCors";
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy(name: MiCors,
                                  builder =>
                                  {
                                      builder.WithOrigins("*");
                                  });
            });
            services.AddDbContext<VentaRealContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddControllers();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "WSVenta", Version = "v1" });
            });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseSwagger();
                app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WSVenta v1"));
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseCors(MiCors);

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)