Announcement

Collapse
No announcement yet.

Verwaltung der Benutzerrechte

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

  • Verwaltung der Benutzerrechte

    Hi,

    Ich suche eine Möglichkeit die Benutzerverwaltung meines Programmes über die Benutzerverwaltung von Windows abzuwickeln. Es geht dabei darum, dem Systemadmin großer Netze eine zentrale Stelle zur Verwaltung der Rechte zu geben. Es soll u.a. verhindert werden, dass, wenn z.B. ein Benutzerpasswort abgelaufen ist, sich dieser Anwender an einer unbeobachteten, aber aktiven Worstation in unser Programm anmelden kann.

    Gruß
    Thorsten

  • #2
    Moin Thorsten,<br>
    <br>
    für Dein als Beispiel genanntes Problem schau Dir doch mal NetUserGetInfo an, und die Struktur USER_INFO_1.<br>
    Müsste in dem konkret genannten Falle funktionieren.<br>
    Nachteil: Diese Funktion gibt's nur unter NT und höher.<br>
    <br>
    Ciao<br>
    Chri

    Comment


    • #3
      Hallo,<br>
      über welche unit, oder mit welchem Eintrag in der UsesKlausel werden diese Funktionen ermöglicht?<br>
      Helmu

      Comment


      • #4
        Moin Helmut,<br>
        <br>
        diese Funktion ist meines Wissens, genau, wie alle anderen NetXXX Funktionen nicht von Borland in Delphi aufgenommen worden.<br>
        Vermutlich, weil es sie entweder nur unter NT... gibt, bzw. weil einige Funktionen für die beiden OS Schienen unterschiedlich implementiert wurden.<br>
        Die muss man sich entweder selber deklarieren (siehe Doku im PSDK), oder eine bestehende Übersetzung nehmen. Gibt's meines Wissens z.B. bei JEDI. (Hallo Robert ;-) )<br>
        <br>
        Ciao<br>
        Chri

        Comment


        • #5
          Hi,

          Nur am Rande bemerkt:
          Hät man ne' Basis bei dem die Nutzeridentifikation nicht ganz so einfach getunnelt werden könnte, dann wär das Problem gar nicht vorhanden.

          Gruß
          Gesin

          Comment


          • #6
            Moin Gesine,<br>
            <br>
            was wollen uns diese Deine Worte sagen? )<br>
            <br>
            Ciao<br>
            Chri

            Comment


            • #7
              Hi Christian,

              Wenn ich sicherstellen kann, dass die Arbeitsstationen bereits eine gültige Authentifizierung vorgenommen hat, dann reicht scho das Ermitteln des Usernamens, um alle weiteren Prüfungen daran aufzuhängen. Dabei fallen dann W9x Stationen aber aus.

              <pre>

              function IsValidated( const DomainToCheck: string ): Boolean;
              var
              User, ConnectedTo: PChar;
              Sid: PSID;
              dw1, dw2, peUse: DWORD;
              begin
              Result := False;
              dw1 := GetSidLengthRequired(0);
              dw2 := 255;
              peUse := SidTypeUnknown;
              sid := StrAlloc( 255 );
              ConnectedTo := StrAlloc( 255 );
              User := StrAlloc( 255 );

              Try
              if GetUserName( User, dw2 ) then
              Begin
              // Funktion MUSS zweimal aufgerufen werden
              LookupAccountName( NIL, User, Sid, dw1, ConnectedTo, dw2, peUse );
              Result := LookupAccountName( NIL, User, Sid, dw1, ConnectedTo, dw2, peUse );
              // Nur zu Testzwecken, sonst auskommentieren
              if Result and ( DomainToCheck = ConnectedTo ) then
              showmessage( connectedTo );
              end;
              except
              end;
              StrDispose( sid );
              StrDispose( User );
              StrDispose( ConnectedTo );
              end;

              </pre>

              Gruß
              Gesin

              Comment


              • #8
                Hallo,

                die Einbindung von Win9x Clients ist auch möglich. Allerdings ist der dann betriebene Aufwand ein "klein" wenig größer. Das Prinzip besteht darin, das die Authentifizierung und Berechtigungsprüfung nicht auf der Client sondern auf der (dann zu programmierenden) Serverapplikation erolgt. Bei der Serverapplikation besteht dann natürlich die Notwendigkeit diese unter Windows NT (4.0/5.0) zu betreiben. Es gibt dazu im NT eine Menge bereits eingebauter Funktionen. Leider habe ich selbst noch kein Buch gefunden, welches eine der möglichen Problemlösungen auf der Basis von Pascal beschreibt. Es gibt dennoch gute Bücher, aus denen das Prinzip und auch Beispiele (natürlich meisten in C oder C++) beschrieben sind. Möchte man die Client Serverkommunikation auf DCOM Basis bauen, kann man unter anderm folgendes Buch zu Rate ziehen: COM von Don Box, ISBN 3-8273-1385-6. Wer die Grundprinzipen der Netzwerkprogrammierung (Named Pipe, Winsock usw) ein wenig beleuchten will, kann das z. Bsp. mit folgendenm Buch tun (Ich gebe zu das dieses etwas in die Jahre gekommen ist, schlage aber selbst immer wieder einmal nach): Netzwerkprogrammierung unter Windows NT 4.0 von Alok K. Sinha, ISBN 3-8273-1103-9.

                MFG André Mosinsk

                Comment

                Working...
                X