Romero: Server-Anmeldung

Hallöchen Gemeinde,

mal ne Frage: Wie kann ich abfragen, ob ich an einem bestimmten Server angemeldet bin? Bzw. ob mit einer bestimmten Web-Seite verbunden bin?

LG Romero

  1. Aloha ;)

    mal ne Frage: Wie kann ich abfragen, ob ich an einem bestimmten Server angemeldet bin? Bzw. ob mit einer bestimmten Web-Seite verbunden bin?

    Unter deiner ersten Frage verstehe ich nichts - dir ist bewusst, dass JavaScript eine clientseitige Technologie ist? Es hätte übrigens auch nicht geschadet, JavaScript in deiner Frage zu erwähnen. Jedenfalls eine allgemeine Warnung: JavaScript ist immer auch manipulierbar, du möchtest dich also nicht unbedingt auf eine solche Abfrage verlassen.

    Ob du mit einer bestimmten Web-Seite verbunden bist kannst du mit JavaScript recht problemlos prüfen, dazu gibts mehrere Möglichkeiten. Wenn du den "eigenen" Server anfragen willst, kannst du einen [XMLHttpRequest](http://wiki.selfhtml.org/wiki/XMLHttpRequest / Ajax) verwenden (den Anmelde-Status kannst du übrigens auch durch das Ergebnis eines solchen "prüfen"); bei fremden Servern ist dein Problem wegen der Same Origin Policy ein wenig größer, du kannst dann kein Ajax verwenden.

    Idee (nicht sicher, ob das funktioniert): Binde ein Bild auf deiner Seite ein, das von diesem Server geladen wird, und horche auf dessen load-Event. Meiner bescheidenen Erinnerung nach sollte das nur dann triggern, wenn der entsprechende Server erreichbar ist.

    Grüße,

    RIDER

    --
    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
    # Facebook # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
    1. Hallo,

      Idee (nicht sicher, ob das funktioniert): Binde ein Bild auf deiner Seite ein, das von diesem Server geladen wird, und horche auf dessen load-Event. Meiner bescheidenen Erinnerung nach sollte das nur dann triggern, wenn der entsprechende Server erreichbar ist.

      das wäre auch meine Idee: auf load- bzw. error-Event reagieren.

      Gruß Jürgen

      1. Hy ihr beiden,

        @RIDER: Du hast Recht, ich hab vergessen, dass ich mit Javascript arbeite.

        Ich werd kurz mal beschreiben, was ich vorhabe. Ich habe eine HTA-Datei, wo ich mittels Javascript & VBS versuche, über ein Formular, diverse TXT-Dateien in eine Excel-Liste bzw. gebündelt in eine TXT-Datei zu schreiben.

        Nun ist der Fall, dass ich mich auf einer Seite (über den IE) einloggen muss, damit ich aus einem anderen Programm (welches nur funktioniert, wenn die Anmeldung auf dieser Seite/Server erfolgreich war), weitere Daten auslesen kann. Bisher hab ich mich, vorher, händisch, auf diesen Server angemeldet. Und somit eine Verbindung zwischen meinem Rechner und dem Server gewährleistet. Nun möchte ich gern wissen, vorab, ob ich als User bereits auf diesen Server angemeldet sind (dazu gibt es auch einen Task im Taskmanager und ein Symbol in der Statusleiste), und wenn ich nicht angemeldet bin (der weitere Schritt), soll er sich automatisch da anmelden.

        Hoffe, ich hab es nun ein wenig besser beschrieben. :)

        LG Romero

        1. Aloha ;)

          Nun möchte ich gern wissen, vorab, ob ich als User bereits auf diesen Server angemeldet sind

          Das ist potenziell einfach, wenn du bspw. (wie vorher vorgeschlagen) ein Bild auf dem Server ablegen kannst, das nur bei vorheriger Anmeldung verfügbar ist, z.B. per htaccess oder serverseitigen Scripts. Oder du hältst per JavaScript nach Elementen auf der Seite Ausschau, die nur nach Anmeldung vorhanden sind. Oder du benutzt Ajax. Oder...

          (dazu gibt es auch einen Task im Taskmanager und ein Symbol in der Statusleiste),

          Die Aussage macht im Lichte deiner bisherigen Informationen irgendwie keinen Sinn. Warum jetzt Task? Ich dachte, wir reden von JavaScript und einer Webseite? Ich werde das Gefühl nicht los, dass wir aneinander vorbeireden.

          und wenn ich nicht angemeldet bin (der weitere Schritt), soll er sich automatisch da anmelden.

          Das ist hochgradig davon abhängig, wie der Anmelde-Vorgang von sich geht und was für Technologien sonst noch so mit von der Partie sind.

          Und: Du willst doch nicht, dass das JavaScript auf deiner Seite automatisch eine Anmeldung vornimmt (die dann damit auch jedem x-beliebigen Aufrufer zuteil wird), den wozu hast du denn sonst überhaupt einen Zugriffsschutz?

          Da ergibt im schon Konzept vieles eher keinen Sinn.

          Hoffe, ich hab es nun ein wenig besser beschrieben. :)

          a bissl :P

          Gehe in dich und überlege, ob du dich mit JavaScript und dem Gesamtkonzept nicht verrennst. Es macht kaum Sinn, eine technische Lösung zu diskutieren, wenn schon die Grundannahmen falsch sind. Mach dir nochmal klar, dass auch JavaScript erst auf der Seite eingebunden werden muss (falls du keinen Zugriff auf die Inhalte vom Server hast, ist das problematisch) und, dass eine Anmeldung keinen Sinn mehr macht, wenn jeder Aufrufer automatisch durch JavaScript eingeloggt wird (ganz abgesehen davon, dass man Login-Dinge sowieso nicht mit JavaScript regeln sollte).

          Grüße,

          RIDER

          --
          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
          # Facebook # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
          1. Hy RIDER

            (dazu gibt es auch einen Task im Taskmanager und ein Symbol in der Statusleiste),

            Die Aussage macht im Lichte deiner bisherigen Informationen irgendwie keinen Sinn. Warum jetzt Task? Ich dachte, wir reden von JavaScript und einer Webseite? Ich werde das Gefühl nicht los, dass wir aneinander vorbeireden.

            Das war nur ein Hinweis, dass es da auch ein Symbol auftaucht, sobald ich mit dem Server verbunden bin. Ist zwar nicht aussagekräftig genug, sondern vllt ein weitere Ansatzpunkt. Nicht mehr.

            Also nach deiner Aussage, reicht es völlig aus, sich mit XMLHttpRequest zu beschäftigen? Um die Verbindung zu überprüfen bzw. ob die Anmeldung erfolgreich war?

            und wenn ich nicht angemeldet bin (der weitere Schritt), soll er sich automatisch da anmelden.

            Das ist hochgradig davon abhängig, wie der Anmelde-Vorgang von sich geht und was für Technologien sonst noch so mit von der Partie sind.

            Und: Du willst doch nicht, dass das JavaScript auf deiner Seite automatisch eine Anmeldung vornimmt (die dann damit auch jedem x-beliebigen Aufrufer zuteil wird), den wozu hast du denn sonst überhaupt einen Zugriffsschutz?

            So hab ich das noch nicht gesehen. Danke für den Ansatz. Jedenfalls könnte an der Stelle, wo diese "geplante" automatische Anmeldung erfolgen sollte, der IE mit der jeweilige Adresse starten, wo der User sich selber anmeldet. Danach erneut prüft, Verbindung aktiv, wenn ja, dass er dann die weiteren Funktionen abruft.

            1. Aloha ;)

              Also nach deiner Aussage, reicht es völlig aus, sich mit XMLHttpRequest zu beschäftigen? Um die Verbindung zu überprüfen bzw. ob die Anmeldung erfolgreich war?

              Sofern die Vorbedingungen korrekt und erfüllt sind (JavaScript ist korrekte Technologie-Wahl und die Same-Origin-Policy ist erfüllt): Ja.

              Und: Du willst doch nicht, dass das JavaScript auf deiner Seite automatisch eine Anmeldung vornimmt (die dann damit auch jedem x-beliebigen Aufrufer zuteil wird), den wozu hast du denn sonst überhaupt einen Zugriffsschutz?

              So hab ich das noch nicht gesehen. Danke für den Ansatz. Jedenfalls könnte an der Stelle, wo diese "geplante" automatische Anmeldung erfolgen sollte, der IE mit der jeweilige Adresse starten, wo der User sich selber anmeldet. Danach erneut prüft, Verbindung aktiv, wenn ja, dass er dann die weiteren Funktionen abruft.

              Wie findet denn die Anmeldung statt? Werden Formulardaten ausgelesen? Wäre es eventuell möglich, diese Formulardaten auch via GET zu senden? In dem Fall könntest du die Logindaten in der Adresse deines Lesezeichens oder Links oder whatever, mit dem du die Seite aufrufst, mitgeben. Falls du schon angemeldet warst ist das kein Beinbruch und falls nicht bist du es danach.

              Bedenke aber dabei, dass das bedeutet, deine Logindaten im Klartext abzuspeichern und beim Request auch "einfach sichtbar" mitzusenden - das möchtest du aus Sicherheitsgründen vielleicht vermeiden. Diese Problematik trifft allerdings auch auf jeden denkbaren JavaScript-Ansatz genauso zu.

              Grüße,

              RIDER

              --
              Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
              # Facebook # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
              1. Hy RIDER,

                ich werd da keine Formular-Daten weitersenden. Es geht da ausschließlich um den Punkt, wie ich feststelle, ob ich auf einer Seite angemeldet bin oder nicht.

                Wenn nicht, dann soll sich der IE mit der besagten Seite öffnen, wo der User seine Daten eingeben kann, und dann, sofern die Anmeldung erfolgt ist, soll mein Script weiterlaufen, welches ich mit einem setTimeOut() bewerkstelligen sollte/müsste.

                LG Romero

        2. Hallo,

          Hoffe, ich hab es nun ein wenig besser beschrieben. :)

          Das klingt für mich so, als wäre deine Aufgabe komplett auf deinem Rechner zu erledigen, hat also eigentlich wenig mit dem Client-Server-System zu tun.

          Vielleicht suchst du Makro-Software, wie AutoIt, mit der du Arbeitsschritte automatisch ausführen lassen kannst und auch bestimmte Zustände abfragen kannst.

          Gruß
          Kalk

        3. Hallo Romero,

          wenn ich dich richtig verstehe, möchtest du eine Art single sign-on schaffen, dass eine Windows-Authentifizierung prüft: wenn du dich mit Windows an einem System angemeldet hast, soll der Zugriff auf eine Website automatisch freigegeben werden. Habe ich das richtig verstanden?

          Falls ja: das ist so nicht möglich. Es gibt zwar Mechanismen, die Microsoft entwickelt hat (Stichwort NTLM), aber das funktioniert meines Wissens nach erstens nur unter Windows und zweitens nur im IE und drittens nur in einer Domänen-Umgebung.

          LG,
          CK

          1. Hy Christian,

            diese automatische Anmeldung werd ich doch nicht kreieren können. Aber jedenfalls das Öffnen des IE's mit der dazugehörigen Seite, damit sich der User anmeldet. Und nach erfolgreichem Anmelden, läuft mein Script wie gewohnt weiter...

            LG Romero

          2. Tach!

            wenn ich dich richtig verstehe, möchtest du eine Art single sign-on schaffen, dass eine Windows-Authentifizierung prüft: wenn du dich mit Windows an einem System angemeldet hast, soll der Zugriff auf eine Website automatisch freigegeben werden. Habe ich das richtig verstanden?

            In einer Windows-Domäne wäre sowas kein Problem. Als Anwendung vertraut man Windows, dass es die Anmeldungen korrekt verwaltet und fragt dann nur den aktuellen Nutzernamen ab, gegebenenfalls zuzüglich Gruppenzugehörigkeiten mit LDAP gegen den Domainserver.

            Falls ja: das ist so nicht möglich. Es gibt zwar Mechanismen, die Microsoft entwickelt hat (Stichwort NTLM), aber das funktioniert meines Wissens nach erstens nur unter Windows und zweitens nur im IE und drittens nur in einer Domänen-Umgebung.

            Auch der Firefox kann NTLM. Der IE (Edge vermutlich auch) meldet im Windowsdomänenumfeld den aktuell angemeldeten Nutzer selbständig an einer NTLM-geschützten Ressource an, der Firefox fragt jedoch nach.

            dedlfix.