.NETCore REST i WPF Ciekawy problem

0

Cześć Wszystkim

Mam ciekawy problem, mianowicie posiadam napisany w .net core serwer REST i WPF (autoryzacja przy pomocy JWT Token) i jeżeli odpalam je obydwa przy pomocy VS Studio to na localhost HttpClient w WPF obcina mi Authorization Heder, i obcina go tylko przy localhost, lecz jeśli REST jest wystawiony na serwer zewnętrzny wszystko działa XD Mieliście kiedyś może taki problem ??

Raczej nie jest to wina kodu bo jak połączę się na zewnątrz to działa, na localhost obcina, ale jeżeli odpytam REST przy pomocy PostMan działa XD

Czyli winne jest tutaj WPF i jego HTTPClinet ale co z nim jest nie tak ?? :)

0

To z tym Postman to próbowałeś jak jest po localhost, czy na zewnątrz?

0

Tak Postmanem localhost działa bez problemu przekazuje Heder, natomiast aplikcja WPF już go obcina.

0

Jak wygląda twoja metoda wywołująca API na zewnątrz, a jak na localhost?

0
var response = await "http://localhost:5000/api/auth/LoginUser" 
.WithOAuthBearerToken("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiIxNzkwIiwidW5p")
 .WithHeader("Content-Type", "application/json")
.PostJsonAsync(new
      {
          username = "",
          password = ""
       })
.ReceiveString();

return await Task.FromResult<string>(((Func<string>)(() =>
      { 
            return response; 

       }))());    

Jest to to ta sama metoda do local i po ip na innej maszynie :)

Użyłem sobie biblioteki Flurl, bo jest ładniejsza ale na czytym HttpClient tak samo jest, zresztą flurl bazuje na HttpClient :)

0
  1. Dlaczego przesyłasz token do API podczas logowania?
  2. Na czym polega obcina mi Authorization Heder, skąd wiesz, że jest obcięty?
  3. Dostajesz jakiś błąd, jaka jest treść błędu, statusCode?

Nie ma czegoś takiego jak nie działa na localhost, ale działa na zewnątrz. Ewidentnie robisz coś inaczej (źle).

0

To było do testów dlatego przy logowaniu wysyłam token :) ale wiem o tym doskonale że metoda do logowania musi byś [AllowAnonymous]. Token wygenerowałem wcześniej ma on 7 dnia ważności więc tutaj to nie jest problemem.
2. W ogóle go nie dodaje do requesta sprawdzam to przy pomocy debbugera w VS Studio po stronie WPF i REST i Authorization Heder jest pusty, i to się dzieje tylko przy Authorization Heder, jeżeli ten token czyli "Bearer eyJhbGciOiJIU ... " dodam w Allow prześle go bez problemu. Dzieje się to tylko jeżeli mam uruchomione obydwie aplikacje u siebie lokanie na komputerze, jeżeli REST-a uruchomię na maszynie i odwołam się po IP działa wszsytko wyśmienicie.
3. No dostaje 401 bo mnie nie wpuszcza do metody. Testuje to na metodzie login bo zależy mi na POST, więc odwołanie do metody nie ma nic wspólnego z logowaniem.

Jeżeli działa mi ta sama aplikcja na maszynie po IP a na localhost nie to raczej znaczy że w kodzie jest OK, mam podejrzenia że to może jakoś środowisko uruchomieniowe .net core coś tutaj wali, ale nie wiem piszę już kilka lat i nigdy takiego problemu nie miałem :)

0

To jeszcze pokaż co masz w pliku Startup.cs, konkretnie w

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
0
 // 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.UseCors("CorsPolicy");
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();
            app.UseHttpsRedirection();
            // global cors policy
            app.UseCors("CorsPolicy");

            app.UseAuthentication();
            app.UseAuthorization();
            

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

Sprawdziłem teraz i jeżeli maszyna jest wystawiona w świat (zewnętrzne IP), to też działa baz problemu problem występuje jeżeli otwieram dwa VS Studio jeden z REST drugi z WPF wtedy nie prkazuje Hedera Authorization inne przekazuje aby Authorization jest omijany.

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