Announcement

Collapse
No announcement yet.

Zugriff verweigert beim Callback-Manager

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriff verweigert beim Callback-Manager

    Hallo,<br>
    <br>
    in dem Buch COM/DCOM mit Delphi von Herrn Kosch ist ein Beispiel für<br> einen Callback-Manager. Mir gelingt es jedoch nicht, dieses über DCOM<br>
    zum Laufen zu bringen.<br>
    <br>
    Solange Client und Server auf einem Rechner sind läuft es. Sobald ich<br>
    jedoch über DCOM auf den Server zugreife, bekomme ich beim Versuch den<br>
    Callback zu aktivieren eine Meldung "Zugriff verweigert".<br>
    <br>
    Ich habe bereits versucht, sämtliche Rechte auf die niedrigste Stufe<br> einzustellen, jedoch ohne Erfolg.<br>
    <br>
    Hat jemand (vielleicht Herr Kosch?) eine Idee, woran es liegen könnte?<br>
    <br>
    Schönen Gruß,<br>
    <br>
    André Mellenthin<br>
    <br>

  • #2
    Hallo,

    DCOM verwendet das so genannte "Wasserstands-Prinzip", bei dem der höchste Sicherheitseintrag auf einer der beiden Rechner die Regeln für beide festlegt. Sind beide Rechner in der gleichen Domäne (ADS)? Unter welchem Benutzerkonto werden die DCOM-Server ausgeführt - gibt es dieses Konto auch auf dem anderen Rechner?

    P.S: Den Sonderfall Callback habe ich in meinem Buch (1. Auflage) auf den Seiten 353ff beschrieben

    Comment


    • #3
      Hallo,<br>
      <br>
      erst einmal vielen Dank für die Antwort. Also, ich verwende als<br> Server W2K (Mitgliedsserver in einer W2K-Domäne) und als Client<br> WinXP Prof., ebenfalls Mitglied und angemeldet in der Domäne.<br>
      <br>
      SERVER:<br>
      <br>
      Standardeigenschaften:<br>
      <br>
      DCOM auf diesem Computer aktivieren: JA<br>
      COM-Internetdienste auf diesem Computer aktivieren: NEIN (falsch?)<br>
      Authentifizierungsebene; (Kein)<br>
      Identitätswechselebene: (Kein)<br>
      <br>
      Spezielle Eigenschaften für das Objekt DBManagerObjekt<br>
      <br>
      Authentifizierungsebene; (Kein)<br>
      Anwendung auf diesem Computer ausführen: JA (da Server)<br>
      Identität: Benutzer, der die Anwendung startet<br>
      <br>
      <br>
      CLIENT:<br>
      <br>
      Standardeigenschaften:<br>
      <br>
      DCOM auf diesem Computer aktivieren: JA<br>
      COM-Internetdienste auf diesem Computer aktivieren: NEIN (falsch?)<br>
      Authentifizierungsebene; (Kein)<br>
      Identitätswechselebene: Anonym<br>
      <br>
      Spezielle Eigenschaften für das Objekt DBManagerObjekt<br>
      <br>
      Authentifizierungsebene; (Kein)<br>
      Anwendung auf diesem Computer ausführen: NEIN (da Client)<br>
      Anwendung auf dem folgenden Computer ausführen: JA (hier steht der <br>W2K-Server)<br>
      Identität: Benutzer, der die Anwendung startet<br>
      <br>
      Der Benutzer der den Client startet ist Domänen-Benutzer, jedoch<br> <u>lokaler</u> Administrator auf dem Server.<br>
      <br>
      Wie ich feststellen konnte, tritt der Fehler "Zugriff verweigert"<br> nicht schon beim Erzeugen, sondern erst 2 Zeilen später bei der<br> folgenden Anweisung auf:<br>
      <br>
      <b>FDBManager.BroadcastInfo(FUserName, 'Connect');</b><br>
      <br>
      Haben Sie hierzu eine Idee?<br>
      <br>
      Schönen Gruß,<br>
      <br>
      André Mellenthin<br>
      <br&gt

      Comment


      • #4
        Müssen nach Änderungen an den Sicherheitseinstellung eigentlich<br> irgendwelche Dienste neu gestartet werden oder greifen die<br> Einstellungen sofort beim nächsten Start der entsprechenden COM-<br>Objekte?<br>
        <br&gt

        Comment


        • #5
          Hallo,

          generell ist es bei DCOM immer eine gute Idee, am Anfang mit der einfachsten Konfiguration anzufangen und das Ganze erst dann schrittweise an die eigenen Bedürfnisse anzupassen, wenn der erste Aufruf erfolgreich war. Da Microsoft in aktuellen Service Packs bzw. in XP die Sicherheits-Regeln zusätzlich verschärft hat, würde ich den ersten Versuch mit der folgenden Einstellung machen:

          Umgebung: Windows XP-Client greift auf W2K-Server in der gleichen Domäne zu

          Server: <br>
          a) DCOM aktivieren: Ja <br>
          b) COM-Internetdienste: Nein (keine HTTP-Tunnelung über Port 80) <br>
          c) Standard-Authentifizierungsebene: <b>Verbinden</b> <br>
          d) Standard-Identitätswechselebene: <b> Identifizieren</b><br>
          Wenn Werte geändert werden, Rechner <b>neu booten</b> !<br>
          (die Punkt c und d sind immer dann wichtig, wenn WinXP oder NT4 SP6 oder W2K SP>=2 genutzt werden)<br>
          e) DCOMCNFG: DCOM-Objekt unter einem <b>festen</b> Benutzer-Konto ausführen (1. Versuch: Administrator-Konto nutzen)

          Client: <br>
          a) DCOM aktivieren: Ja <br>
          b) COM-Internetdienste: Nein (keine HTTP-Tunnelung über Port 80) <br>
          c) Standard-Authentifizierungsebene: <b>Verbinden</b> <br>
          d) Standard-Identitätswechselebene: <b> Identifizieren</b><br>
          Wenn Werte geändert werden, Rechner <b>neu booten</b> !<br>
          (die Punkt c und d sind immer dann wichtig, wenn WinXP oder NT4 SP6 oder W2K SP>=2 genutzt werden)<br>
          e) DCOMCNFG: COM-Standardsicherheit | Zugriffsberechtigung auf das Callback-Objekt für den Benutzer, den der Server im Punkt e) festlegt.

          Für den 1. Test ist es außerdem sinnvoll, wenn für die Punkte e) ein Benutzerkonto gewählt wird, dass auf beiden Rechnern eine <b>identische</b> Benutzernamen- und Passwort-Kombination verwendet. War dann der Zugriff erfolgreich, kann man alle globalen Einstellungen durch die Anwendungsspezifischen Einstellungen ersetzen und die Rechte einschränken

          Comment


          • #6
            Hallo Herr Kosch,<br>
            <br>
            nochmals vielen Dank. Ihr Tip bzgl. der Verwendung eines<br> <b>festen</b> Benutzerkontos war der Schlüssel! Ich hatte zuvor die<br> Einstellung "Benutzer, der die Anwendung startet.". Nun ist sowohl<br> am Client als auch am Server ein festes Konto hinterlegt. Und nun<br> funktioniert es.<br>
            <br>
            Mir ist der Unterschied zwar noch nicht ganz klar, aber Hauptsache<br> ich habe eine Lösung auf der ich aufsetzen kann.<br>
            <br>
            Schönen Gruß,<br>
            <br>
            André Mellenthin<br>
            <br&gt

            Comment

            Working...
            X