Asp.Net Core CORS и SSL - PullRequest
       10

Asp.Net Core CORS и SSL

0 голосов
/ 16 октября 2019

Моя ситуация такова, что мой внешний интерфейс построен с реагированием, а мой внутренний - с ядром asp.net. 2.2

- внешний интерфейс: https://example.com/sub-directory - с действующим сертификатом

- внутренний интерфейс: https://198.38.x.x:5001Windows-сервер без действительного сертификата

как мне связаться с моим бэкэндом, если мой интерфейс требует SSL, я всегда получаю сетевую ошибку?

Startup.cs

services.AddCors(options =>
            {
                options.AddPolicy(MyAllowSpecificOrigins,
                builder =>
                {
                    builder
                    .WithOrigins("https://example.gov.ph", "http://example.gov.ph")
                    .AllowCredentials()
                    .AllowAnyHeader()
                    .AllowAnyMethod();
                });
            });

app.UseCors(MyAllowSpecificOrigins);

config.json код моего внешнего интерфейса

{
  "apiUrl": "https://198.38.x.x:5001/api",
  "url": "https://198.38.x.x:5001",
  "profilePictureUrl": "https://198.38.x.x:5001/Public/Employees/Photos",
  "selectOptionLimit": 10,
  "fileSizeLimit": 10,
  "pageSize": 20,
  "gridSize": { "col": 4, "row": 3 }
}

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Когда браузеры выполняют междоменные вызовы с использованием XHR, они запрашивают заголовки CORS, чтобы решить, разрешает ли целевой сервер доступ к исходному домену.

  public void ConfigureServices(IServiceCollection services)
    {
        // ...
        services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                builder => builder.WithOrigins("https://example.com/sub-directory")
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials());
        });

        services.AddMvc();
        // ...

    }
    public void Configure(IApplicationBuilder app)
    {
        // ...
        app.UseCors("CorsPolicy");
        // ...
    }
0 голосов
/ 16 октября 2019

Вы можете добавить это в вашей Startup конфигурации класса

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";

    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors(options =>
        {
            options.AddPolicy(MyAllowSpecificOrigins,
            builder =>
            {
                builder.WithOrigins("https://example.com/sub-directory");
            });
        });

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseHsts();
        }

        app.UseCors(MyAllowSpecificOrigins); 

        app.UseHttpsRedirection();
        app.UseMvc();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...