Zezwolenie na http w jednym z kontrolerów

0

Witam.

Czy da się zrobić tak, aby mając:
app.UseHttpsRedirection(); w konfiguracji,
zezwolić jednemu kontrolerowi na łączenie się przez http?

Potrzebuje łączyć się do jednego z kontrolerów ze starszego urządzenia w którym przeglądarka "średnio" wspiera https.

0

watpie w to.

Zawsze mozesz postawic nowy projekt ktory odbiera po http dany request i dalej go wysyla (juz po https) do Twojego glownego programu

edit jednak sie mylilem

1

Nie jestem pewien czy chce ci się tyle pisać ale może to coś nakieruje Enforce https on one controller and http on the other. Jeśli nie, to zamiast app.UseHttpsRedirection(); może dodaj atrybut do kontrolerów, które wymagają https

[RequireHttps]
public class MyController : ControllerBase
{
}

PS.
Widziałem, że sporo ludzi na [RequireHttps] narzeka i preferuje własne atrybuty.

3

A czy przypadkiem nie dałoby się tego zrobić na poziomie Middleware?

np. przed wywołaniem HttpsRedirectora mieć jakiś swój checker, który pozwoliłby skipnąć HttpsRedicredtion

lub po prostu napisać swój własny HttpRedirection w oparciu o kod źródłowy prawdziwego, ale dodanie swojego checka w nim?

0

Moze w startup.cs wrzucic app.UseRouting() przed app.UseHttpsRedirection() , zrobic if'a na endpoint i jesli to ten twoj to nie wykonec UseHttpsRedirection.
Ale nigdy czegos takiego nie robilem i tez nie wiem czy powinno tak sie robic, tak tylko przyszlo mi do glowy.

albo :

Jest tez cos takiego jak app.useWhen i wtedu mozesz odwolac sie do requestu lambda

 app.UseWhen(context => context.Request.Path.StartsWithSegments ("/twojKontroler"), appBuilder => { appBuilder.UseHttpsRedirection(); }); 
0

Zrobiłem to za pomocą dodatkowego atrybutu (o którym mowa w temacie do którego wrzucił link @AdamWox).

Dziękuję za pomoc :).

1 użytkowników online, w tym zalogowanych: 0, gości: 1