Kaan Öztürk Ответов: 0

Как включить cors в ASP.NET ядро 3.0


Привет,
Я пытаюсь включить cors в asp.net ядро 3.0
Я добавил следующий код в ConfigureServices в Startup.cs
services.AddCors(options =>
{
 options.AddDefaultPolicy(
 builder =>
  {
 builder.WithOrigins("https://ogrencievi.net")
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
 });
});

и настроить;
app.UseCors();



Автозагрузки.в CS;

public class Startup
    {
        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.AddDefaultPolicy(
                    builder =>
                    {
                        builder.WithOrigins("https://ogrencievi.net").AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod();
                    });
            });
            services.AddDbContext<OEDBContext>(_ => _.UseSqlServer("Data Source=.... Initial Database=ogrencievidb.mdf;Integrated Security=false; User ID=..;Password=...; MultipleActiveResultSets=True;"));

            services.Configure<AuthOptions>(Configuration.GetSection("AuthOptions"));

            var authOptions = Configuration.GetSection("AuthOptions").Get<AuthOptions>();


            services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = true,
                    ValidateAudience = true,
                    ValidateLifetime = true,
                    RequireExpirationTime = true,
                    ValidIssuer = authOptions.Issuer,
                    ValidAudience = authOptions.Audience,
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(authOptions.SecureKey)),
                    ClockSkew = TimeSpan.Zero,
                };
            });

            services.AddControllers();
        }

        // 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.UseRouting();
            app.UseCors();
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseHttpsRedirection();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }

Проект, над которым мы работаем api.ogrencievi.net и этот код должен добавить функцию Access-Control-Allow-Origin в раздел заголовков, но она не работает.
Как я могу это исправить ?

Что я уже пробовал:

Я сделал это, посмотрев на эту ссылку.
https://docs.microsoft.com/tr-tr/aspnet/core/security/cors?view=aspnetcore-3.0 | Майкрософт документы[^]>

Я также изучил эту страницу и попытался реализовать ее;
в C# - Как включить CORS в ASP.net основной веб-API - переполнение стека[^]

Maciej Los

Попробуйте добавить в Configure метод этой строки:

app.UseCors(        options => options.WithOrigins("https://ogrencievi.net").AllowAnyMethod()


И удалить подобную строку из ConfigureServices.

Kaan Öztürk

Я пытался, но ничего не вышло :/

0 Ответов