.NET Core AddHttpClient a zachowywanie cookies pomiędzy wywołaniami

0

Załóżmy, że rejestruję sobie w aplikacji RESTowego klienta w taki sposób:

            services.AddHttpClient<BankAccountClient>(client => client.BaseAddress = new Uri(Configuration["BankApi:Url"])).ConfigurePrimaryHttpMessageHandler(() =>
            {
                return new HttpClientHandler()
                {
                    AllowAutoRedirect = true,
                    UseCookies = true,
                    CookieContainer = new CookieContainer()
                };
            }); 

Co mogę zrobić, żeby cookies były zachowywane pomiędzy kolejnymi wywołaniami (np. pomiędzy zalogowaniem, a pobraniem danych)?

1

Byłeś tutaj?

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-2.2#httpclient-and-lifetime-management

Nigdy nie używałem tego rejestrowania HttpClientFactory, ale wychodzi że musisz sprawdzić jak wyglądają te lifetime'y klienta i handlera. Możesz też spróbować nie tworzyć mu w handlerze new CookieContainer(), tylko stworzyć go wcześniej i przekazać instancję (ale też nie wiem jakie to będzie miało konsekwencje, znowu zależy od scope).

0

Okazuje się, że ciasteczka są przekazywane pomiędzy zapytaniami bez konieczności konfigurowania czegokolwiek. To co u mnie nie grało to to, że trzeba było wyciągnąć XSRF-TOKEN z ciasteczka i ustawić tą wartość jako nagłówek X-XSRF-TOKEN.

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