Durchführung des Codes mit weiteren Benutzer-Rechten



  • Hallo. Ich muß Teil des Codes meines Programms durch Verwenden Rechte eines anderen Benutzers durchführen. Ich gebrauche(benutze) API-Funktionen LogonUser (), ImpersonateLoggedOnUser () und RevertToSelf ().
    Das Programm führt ohne ein Problem, der LogonUser () Arbeiten gut durch, ich denke, da ich GetUserName () gebrauche(benutze) und es den Benutzer wiederbekommt, geben früh in LogonUser () an. Aber die Ruhe(Rest) des Programms tut nicht Arbeiten, wie ich will.

    Hat irgend jemand ein Beispiel dafür Funktionen? jede andere Idee?

    Übrigens der "RunAs"-Befehl tut nicht Arbeiten, und ich gebrauche(benutze) WinXP profesional Ausgabe.

    Dank, schade meine schlechte(schlimme) Orthographie. 😕



  • [schmarrn=on]
    args (ups), kann (tun) ja kein (negativ) mensch (niemand) lesen (schmökern) und schon gar nicht (niemals nimmer) verstehen (nachfühlen).
    [schmarrn=off]

    dank an word und seine synonyme. 😉



  • Sieht mir aus, als wär's maschinell aus dem englischen übersetzt:

    Übrigens der "RunAs"-Befehl  tut  nicht Arbeiten
    Btw      the "RunAs"-Command does not   work
    


  • Bitte macht euch nicht über Leute lustig, die sich trotz fehlender Sprachkenntnisse in diesem Forum redlich mühen, Hilfe zu erhalten. Wenn ich in einem englischsprachigen Forum Fragen stelle, möchte ich soetwas auch nicht erleben.

    Und jetzt zur Sache: Wäre die Frage im WinAPI-Forum nicht besser aufgehoben?

    Rob'



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ich bin sicher, dass Sie meine Frage, Recht verstehen? .... so weiß irgend jemand, wie man richtig jene API gebraucht(benutzt)? ... kommen auf Kerlen ... ich will gerade wissen(kennen), wenn ich richtigen Gebrauch davon Funktionen tue!....

    Und ja gebrauche(benutze) ich einen englisch-deutschen Übersetzer, da ich von México bin...



  • Ach so, du meinst diese) Funktion...

    Das müsste wiie folgt gehen:

    HANDLE hToken;
    
    // First, you have to call your LogonUser Function and the last parameter 
    // have to be hToken.
    // Than you can call:
    ImpersonateLoggedOnUser(hToken);
    


  • (I think most people here are able to understand english :D)



  • yes, i think so, too.

    So, you can speak english. We can understand that better...



  • Then maybe something is wrong with my code, in this example, the current user (with limited rights)impersonate a user with different rights (change system time, and rights over "nopermiso.txt"), the ImpersonateLoggedonUser() seems to work well, but it doesn't seems to get his rights.

    HANDLE nToken = NULL;
      DWORD  err;
    
      if(!LogonUser("sistemachecador", "CARLOSM", "m@dific@h@r@", LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &nToken))
       ShowMessage("Error en LogonUser: "+AnsiString(GetLastError()));
      else
      {
       // Impersonate a user with special rights
       if(!ImpersonateLoggedOnUser(nToken))
        ShowMessage("Error en ImpersonateLoggedOnUser: "+AnsiString(GetLastError()));
    
       // Display the current user name
       char buffer[50];
       unsigned long buffersize;
    
       buffersize = 50;
    
       if( GetUserName(buffer, &buffersize) )
        ShowMessage( buffer );  // It returns the user i want to impersonate!
    
       // Try to change system date time ( doesn't works )
       SYSTEMTIME *sis_fechor;
    
       sis_fechor = new SYSTEMTIME();
       sis_fechor->wYear = 2005;
       sis_fechor->wMonth = 05;
       sis_fechor->wDayOfWeek = 6;
       sis_fechor->wDay = 14;
       sis_fechor->wHour = 12;
       sis_fechor->wMinute = 52;
       sis_fechor->wSecond = 0;
       sis_fechor->wMilliseconds = 0;
    
       SetSystemTime(sis_fechor);
    
       // Try to make a copy of file "conpermiso.txt" ( it works well, since everybody has rights over this file )
       String instruccion;
    
       instruccion = "COPY conpermiso.txt conpermiso_copia.txt ";
       int errrr = system(instruccion.c_str());
    
       if( errrr == -1 )
       {
        switch( GetLastError() )
        {
         case ENOENT:  // Path or file function not found
          ShowMessage("Ruta ó comando no encontrado");
         break;
         case ENOEXEC: // Exec format error
          ShowMessage("Error de formato en comando ejecutable");
         break;
         case ENOMEM:  // Not enough memory
          ShowMessage("No hay suficiente memoria");
         break;
         default:
          ShowMessage("Error desconocido");
        }
       }
    
       // Try to make a copy of file "nopermiso.txt" ( it doesn't works )
       instruccion = "COPY nopermiso.txt nopermiso_copia.txt ";
       errrr = system(instruccion.c_str());
    
       if( errrr == -1 )
       {
        switch( GetLastError() )
        {
         case ENOENT:  // Path or file function not found
          ShowMessage("Ruta ó comando no encontrado");
         break;
         case ENOEXEC: // Exec format error
          ShowMessage("Error de formato en comando ejecutable");
         break;
         case ENOMEM:  // Not enough memory
          ShowMessage("No hay suficiente memoria");
         break;
         default:
          ShowMessage("Error desconocido");
        }
       }
    
       // back to normal user
       if(!RevertToSelf())
        ShowMessage("Error RevertToSelf() : "+AnsiString(GetLastError()));
    
       CloseHandle(nToken);
      }
    

    Thanks for your patience!!!



  • Eres de España o un país como se habla Español? <-- (We're going to write a spanish vocabulary test today. >_<)
    (Anyway, you have spanish comments written.)
    Sorry that I'm not able to give any help, just wondering to see any program with Spanish commands.



  • to wonder heißt nicht "sich wundern", sondern "sich fragen", "grübeln". 🙄
    "...ich frag mich gerade ein Programm mit spanischen Kommentaren zu sehen." 😕



  • You need help with the Spanish? I can help you.


Anmelden zum Antworten