Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: MFC (Visual C++) ::  Probleme mit Berechtigungen im "ProgrammData"-Verzeichnis     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
elmut19
Mitglied

Benutzerprofil
Anmeldungsdatum: 03.12.2013
Beiträge: 125
Beitrag elmut19 Mitglied 11:18:21 12.01.2018   Titel:   Probleme mit Berechtigungen im "ProgrammData"-Verzeichnis            Zitieren

Hallo zusammen,

und ja, es gibt etliche Antworten dazu im Netz. Leider sind 90% davon unbrauchbar.
Auch habe ich selbst auch schon einen Thread dazu hier drin.

Nun mein lapidares Problem:
Mein Programm verwendet dieses Verzeichnis zum Speichern von INI-Daten, die von allen Benutzern genutzt werden.
Somit müssen auch alle Benutzer diese Daten ändern können!

Mir wurde das hier so erklärt, dass genau dieses Verzeichnis dafür gedacht ist!

Leider stellt sich das nun genau anders heraus.
Wenn ich mich mit einem anderen Benutzer anmelde, kann dieser nicht mehr schreibend auf diese Daten zugreifen.

Es ist nun auch leider so, dass das Programm selbst die nötigen Unterverzeichnisse in "ProgrammData" anlegt und nicht "Setup.exe".
Damit fängt das Dilemma leider schon an.

Das Dilemma geht dann damit weiter, dass das Programm über einen Link auf
einen Netzwerkpfad aufgerufen werden soll und damit ohne echtes "Setup" auskommen muss.
Also ist hier dieses Dilemma schon mal unlösbar.

Ein "Setup" könnte ja Berechtigungen setzen, weil im Admin-Mode ausgeführt.
Das müsste ich auch erst so scheiben:-(

Kann mir bitte jemand da weiterhelfen?

Ich müsste diesem Programm die Fähigkeit geben, die Schreibrechte auf die erzeugten Verzeichnisse,
für alle authentifizierten User zu freizugeben!
Klar, ich muss dann natürlich prüfen, ob der User, der gerade damit arbeitet,
auch Admin Rechte besitzt.

Wie mache ich das in C++ (nicht .NET !!)?

Ein kleines Code-Beispiel wäre super!

Grüsse
Helmut
dsdfas
Unregistrierter




Beitrag dsdfas Unregistrierter 18:48:54 12.01.2018   Titel:              Zitieren

Rein aus WinAPI-Sicht (keine Ahnung, was MFC kapselt):

Berechtigungen in ProgramData können auch von Nicht-Admins gesetzt werden. Schau dir mal SECURITY_ATTRIBUTES in CreateDirectory und CreateFile an.

Dieser Code (1. Antwort) ist alles andere als schön und sollte angepasst werden, zeigt aber eine Lösung.

Falls die Frage nach dem Admin doch noch nötig sein sollte, kannst du das mit GetTokenInformation herausfinden (wobei dabei die TOKEN_INFORMATION_CLASS TokenElevation ist und der dritte Parameter ein Zeiger auf eine TOKEN_ELEVATION-Struktur sein sollte).
elmut19
Mitglied

Benutzerprofil
Anmeldungsdatum: 03.12.2013
Beiträge: 125
Beitrag elmut19 Mitglied 20:39:27 12.01.2018   Titel:              Zitieren

Vielen Dank dsdfas,

da sind ein paar Sachen dabei, die sich sich sehr gut anhören.
Ausprobieren kann ich es erst in einer Woche. Ich brauch Urlaub.


Zuletzt bearbeitet von elmut19 am 20:40:01 12.01.2018, insgesamt 1-mal bearbeitet
AndyDD
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.07.2004
Beiträge: 940
Beitrag AndyDD Mitglied 12:29:31 17.01.2018   Titel:              Zitieren

ich glaube die Funktion SHGetFolderPath ist da dein Freund. Du solltest das immer damit machen, da unter verschiedenen Betriebssystemen diese Pfade auch mal anders lauten können. Wenn Du den 2. Parameter auf CSIDL_COMMON_APPDATA setzt müsste die genau das machen was du möchtest. In diesem Verzeichnis hast Du auch ohne erhöhte Rechte Schreibzugriff. Damit muss man auch kein Setup als Administrator ausführen.
elmut19
Mitglied

Benutzerprofil
Anmeldungsdatum: 03.12.2013
Beiträge: 125
Beitrag elmut19 Mitglied 08:37:34 19.01.2018   Titel:              Zitieren

Vielen Dank, Andy,
ich werde die Anregungen ab Montag ausprobieren.
C++ Forum :: MFC (Visual C++) ::  Probleme mit Berechtigungen im "ProgrammData"-Verzeichnis   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.