Zugriff auf Dateien im Netzwerk



  • Hallo 🙂

    ich stehe vor folgender Herrausforderung und bräuchte eure Hilfe:

    Ich möchte eine Datei öffnen, die sich im Netzwerk befindet (bspw.: \<SERVER>\BLABLA\text.txt). Der Prozess, der auf diese Datei zugreifen soll, läuft unter dem User "System". Der PC-Benutzer meldet sich vorher ganz normal mit seinen Daten am Server an (z.B. Domain-Account).

    Der Anwender hat somit mit seinem Account Zugriffsrechte auf diese Datei. Das System-Konto natürlich nicht.

    Der Prozess startet einen neuen Thread um die Datei zu öffnen. Der Zugriff bleibt verwehrt.

    Meine Idee war es nun, den Thread zu impersonieren (Kann man das so sagen? 😉 ) um dann auf die Datei zuzugreifen. Leider waren bis jetzt alle Versuche mit dem Impersonieren erfolglos.

    Das Impersonieren müsste allerdings ohne die "manuelle" Authentifizierung mit Benutzernamen und Passwort funktionieren.

    "Ich hoffe ich konnte mein Problem ein wenig klar darstellen ;-)"

    fG



  • Inwiefern hat das jetzt irgendwas mit C++ zu tun?



  • Insofern, als das es mit c++ realisiert werden soll / muss 🙂



  • Klingt erstens nicht wirklich wie ein Ein-Mann-Projekt (gleichwohl man alleine schon was rudimentäres zustande kriegen kann, mit entsprechendem Zeitaufwand), zweitens gibt es sowas doch schon längst. Unter Windows z.B. hieß das mal Active Directory (kA obs immer noch so ist).



  • @Jodocus
    Er hat nen Prozess der mit SYSTEM läuft, und will da drin Zugriffe als Domänen-User machen.
    Er will nicht Active Directory nachprogrammieren sondern es verwenden.

    @ju1ion
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa378184(v=vs.85).aspx mit LOGON32_LOGON_NEW_CREDENTIALS
    und dann
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa378612(v=vs.85).aspx



  • Ich bin immer noch nicht ganz sicher,was die Architektur angeht.

    1. Es gibt einen Prozess, der unter dem lokalen System-Konto läuft. Dieser Prozess startet Threads, die auf Dateien auf einem Netzlaufwerk zugreifen. Dieser Prozess existiert im Moment noch nicht und soll in C++ realisiert werden.

    2. Die Dateien auf dem Netzlaufwerk werden von Benutzern erzeugt, die sich entweder lokal oder über die Domäne anmelden. Weil der Prozess aus 1) allerdings keine Rechte für den Zugriff auf die Dateien hat sollen die Zugriffsrechte des aktuell angemeldeten Windows Benutzers verwendet werden.

    Habe ich das so richtig verstanden?


Anmelden zum Antworten