<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Benutzerrechte eines User in einem Verzeichnis]]></title><description><![CDATA[<p>Ich habe folgende Idee:<br />
Nach Angabe eines Verzeichnisses soll das Programm ausgeben welcher Benutzer auf dem Computer in dem Verzeichnis Schreib- und welcher Benutzer Leserechte hat.<br />
Ich habe schon das PSDK durchwühlt und bin da auf <strong>GetFileSecurity</strong> gestossen. Nur wie geht es dann weiter? Irgend wie bin ich dann auch über ACL's gestolpert. Nur wie geht es weiter bzw. wie muss ich die jetzt anwenden, um an die gewünschten Infos zu kommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/66469/benutzerrechte-eines-user-in-einem-verzeichnis</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 22:41:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/66469.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Feb 2004 19:34:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Benutzerrechte eines User in einem Verzeichnis on Sat, 28 Feb 2004 19:34:22 GMT]]></title><description><![CDATA[<p>Ich habe folgende Idee:<br />
Nach Angabe eines Verzeichnisses soll das Programm ausgeben welcher Benutzer auf dem Computer in dem Verzeichnis Schreib- und welcher Benutzer Leserechte hat.<br />
Ich habe schon das PSDK durchwühlt und bin da auf <strong>GetFileSecurity</strong> gestossen. Nur wie geht es dann weiter? Irgend wie bin ich dann auch über ACL's gestolpert. Nur wie geht es weiter bzw. wie muss ich die jetzt anwenden, um an die gewünschten Infos zu kommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/469801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/469801</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 28 Feb 2004 19:34:22 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzerrechte eines User in einem Verzeichnis on Sat, 28 Feb 2004 22:24:08 GMT]]></title><description><![CDATA[<p>Das ist einigermaßen viel händisches Gefummel. Du mußt jedenfalls GetFileSecurity mindestens mit dem Flag DACL_SECURITY_INFORMATION im zweiten Parameter aufrufen, damit der SECURITY_DESCRIPTOR mit den benötigten Infos gefüllt wird. Danach holst Du Dir mit <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/getsecuritydescriptordacl.asp?frame=true" rel="nofollow">GetSecurityDescriptorDacl</a> die DACL des SECURITY_DESCRIPTORs. Jeder Eintrag in der Liste nennt sich Access Control Entry (ACE). Die Anzahl der ACEs Deiner DACL bekommst Du von <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/getaclinformation.asp?frame=true" rel="nofollow">GetAclInformation</a> und <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/acl_information_class.asp?frame=true" rel="nofollow">AclSizeInformation</a> im letzten Parameter (die Anzahl wird über <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/acl_size_information.asp?frame=true" rel="nofollow">ACL_SIZE_INFORMATION</a>.AceCount geliefert.</p>
<p>Jetzt kannst Du in einer Schleife durch die Liste gehen und Dir die einzelnen ACEs mit <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/getace.asp?frame=true" rel="nofollow">GetAce</a> holen. Gültige Werte für den zweiten Parameter liegen im Bereich von 0 &lt;= dwAceIndex &lt; ACL_SIZE_INFORMATION.AceCount - 1.</p>
<p>Ein ACE kann verschiedene Gesichter haben. Vergleichen kannst Du das mit WM_NOTIFY. Hier kann lParam auf alle möglichen Strukturen zeigen. Unterschieden wird wir über NMHDR.code. Ein ACE besteht auch immer aus einem Header, dem <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/ace_header.asp?frame=true" rel="nofollow">ACE_HEADER</a> und unterschieden wird über dessen Feld AceType.</p>
<p>Wird dem User Zugriff gewährt, wird ACE_HEADER.AceType auf ACCESS_ALLOWED_ACE_TYPE gesetzt sein. Du weißt nun, daß der ACE ein <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/access_allowed_ace.asp?frame=true" rel="nofollow">ACCESS_ALLOWED_ACE</a> ist. In ACCESS_ALLOWED_ACE.Mask steht nun, was dem User/ der Gruppe erlaubt wird. Um welchen User/ welche Gruppe es geht, steht in ACCESS_ALLOWED_ACE.SidStart. Den SID kannst Du per <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/lookupaccountsid.asp?frame=true" rel="nofollow">LookupAccountSid</a> in einen lesbaren String verwandeln.</p>
<p>Ich weiß ja nicht, was Du da vorhast. Aber wenn Du nur prüfen willst, ob Du Zugriff hast, geht das mit <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/accesscheck.asp?frame=true" rel="nofollow">AccessCheck</a> wesentlich einfacher.</p>
<p>Wenn es Dir aber wirklich um die Anzeige geht und Du COM kennst und damit umzugehen weißt, gibt es bereits ein fertiges UI für Dich, den <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/access_control_editor.asp?frame=true" rel="nofollow">Access Control Editor</a>. Mit der Funktion <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/createsecuritypage.asp?frame=true" rel="nofollow">CreateSecurityPage</a> erstellst Du eine PropertyPage, die Du bereits aus den Sicherheitseinstellungen zu Deiner Datei kennst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/469825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/469825</guid><dc:creator><![CDATA[-King-]]></dc:creator><pubDate>Sat, 28 Feb 2004 22:24:08 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzerrechte eines User in einem Verzeichnis on Sat, 28 Feb 2004 22:07:36 GMT]]></title><description><![CDATA[<p>Ach du meine Güte. Aber ich denke, ich müsste ersteren Weg gehen. Mal sehen, wie weit ich komme. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/469859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/469859</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 28 Feb 2004 22:07:36 GMT</pubDate></item></channel></rss>