none
Request external login RRS feed

  • Frage

  • Hello,

    i have a Blazor Webassembly App and

    i want to call an external url that contains a login form.

    After login, and therefore session cookies are set in the browser (My Blazor App), i want to continue my app.

    So it's like as follows:

    Starting my Blazor app -> Get request to the external server for the login form -> after login, continue with my app.

    I have a login.razor in my Blazor.Webbassembly-Project with the following content:

    @page "/login"
    @inject HttpClient Http
    
    
    @code {
        protected override async Task OnInitializedAsync()
        {
            var response = await Http.GetAsync("http://ma.ekserver.local:8888/uaa/login");
            Console.WriteLine(response);
        }
    }

    After successful login, i can fetch user data from this server from: "http://ma.ekserver.local:8888/uaa/userinfo"

    However, the above Request gives me the following error:

    Mixed Content: The page at 'https://localhost:22328/login' was loaded over HTTPS, but requested an insecure resource 'http://ma.ekserver.local:8888/uaa/login'. This request has been blocked; the content must be served over HTTPS.

    How can i force the blazor app to make a "http" insted of "https" request so the browser does not block the request?


    • Bearbeitet GlobalHost Freitag, 11. September 2020 14:20 Fehler
    Freitag, 11. September 2020 14:16

Alle Antworten

  • Hi,

    mach es bitte andersrum. Sorg dafür, dass dein Host ma.ekserver.local über https erreichbar ist. Alles andere führt zu nichts.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Freitag, 11. September 2020 14:49
    Moderator
  • Hallo Stefan,

    danke für deine Antwort.

    Leider habe ich darauf keinen Einfluss.

    Die Authentifizierung ist aber ohnehin nur ästhetischer Natur, denn abhängig vom User sollen ihm im Dashboard einfach nur andere Dinge angezeigt werden. Theoretisch kann die App danach komplett offline laufen. Die App bzw. der Server laufen auch nur im Firmennetzwerk.

    Es muss nur einmalig in Erfahrung gebracht werden was für ein User grade die App bedient und dementsprechend das Dashboard angezeigt werden. Die User sollen allerdings nicht lokal gespeichert werden, sondern liegen auf dem Server.

    Deshalb muss einmalig ein Http Request auf "...uua/login" zum Server gestellt werden um in meiner App das Login-Form vom Server angezeigt zu bekommen damit der User sich anmelden kann. Danach würde ich einmalig die ".../userinfo" vom Server holen und dementsprechend das Dashboard anzeigen. Danach kann die Verbindung getrennt werden.


    • Bearbeitet GlobalHost Freitag, 11. September 2020 15:13
    Freitag, 11. September 2020 14:58
  • Hi,

    wenn die Anwendung öffentlich und nicht nur im Intranet (d)eines Kunden erreichbar sein soll, wird man um SSL nicht herumkommen, vor allem nicht, wenn hier auch nur irgendwas mit Endbenutzerdaten (und sei es nur eine Emailadresse) gemacht wird.

    Ansonsten versuch mal, den Browser dazu zu bringen, nicht wegen des Mixed Content rumzumeckern. Siehe dazu bspw.:

      Web API Error - This request has been blocked; the content must be served over HTTPS

    Alternativ kannst Du deine Anwendung auch auf mit http anstelle von https aufrufen. In der launchSettings.json steht in der Regel auch der http Port drin.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Freitag, 11. September 2020 15:19
    Moderator
  • Hi,

    die Anwendung läuft ausschließlich im Intranet.

    "Alternativ kannst Du deine Anwendung auch auf mit http anstelle von https aufrufen. In der launchSettings.json steht in der Regel auch der http Port drin."

    Diese Möglichkeit erscheint mir da besser, da diese App auf vielen Endgeräten in der Firma als PWA läuft.



    • Bearbeitet GlobalHost Freitag, 11. September 2020 16:18
    Freitag, 11. September 2020 15:29