Angular +. net Core 3 + Azure Служба приложений - Разрешить HTTP только для указанного c маршрута только? - PullRequest
0 голосов
/ 06 марта 2020

У меня есть проект с интересным сценарием.

Мне нужно развернуть сервис SOAP (использующий ядро ​​soap) в среде, и он должен разрешить http- - клиентское приложение, которое использует старое, уже скомпилированное и не будет работать с https (я пробовал).

однако я хочу буквально ВСЕ, кроме только http, а не https.

, поэтому я Я ищу конкретный c маршрут: myservice / theservice.asmx, чтобы разрешить HTTPS, а все остальное не так много.

Я развернут в windows appservice.

Я мог бы разделить эту службу soap на другую службу приложений, если бы мне пришлось, но я бы предпочел этого не делать.

Есть ли способ выполнить sh это?

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Я нашел ответ на свой вопрос:

  app.UseWhen(httpContext => !httpContext.Request.Path.StartsWithSegments("/pga4"),
                subApp => subApp.UseHttpsRedirection());

Это позволяет вам условно применять промежуточное ПО на основе пути.
(subApp действует так же, как app.Usexxx(), но только в этом условном контексте ).

Надеюсь, это поможет.

0 голосов
/ 06 марта 2020

Вы можете использовать HttpInterceptor для фильтрации и исправления каждого http / s-запроса, который отправляется?

Очень грубый пример:

import { Injectable } from '@angular/core';
import {
  HttpRequest,
  HttpHandler,
  HttpEvent,
  HttpInterceptor
} from '@angular/common/http';

@Injectable()
export class ServiceInterceptor implements HttpInterceptor {
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    if (request.url.match(/myservice\/theservice\.asmx$/)) {
      request = request.clone({
        url: request.url.replace('https:', 'http:')
      });
    }
    return next.handle(request);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...