首先,让我问一下,在Windows-NT上,每个用户的ACL权限是否会发生变化?我问的原因是因为accesschk实用程序似乎将用户名作为参数,同时还需要一个对象来检查(在我的情况下是文件夹路径)。
在任何一种情况下,如何获取具有C ++的特定Windows用户的文件夹的ACL权限(this stuff)?我假设我需要拨打GetNamedSecurityInfo,但如何从用户帐户中获取权限?
答案 0 :(得分:2)
ACL的重点在于用户之间的差异。他们是访问控制列表;它们控制哪些用户可以访问资源。
你在GetNamedSecurityInfo
就对了。它可以为您提供两种ACL,即SACL和DACL。 SACL处理文件访问审核(很少使用),DACL具有权限。您可以使用GetExplicitEntriesFromAcl
分解返回的DACL。
答案 1 :(得分:1)
"在任何一种情况下,如何为使用C ++的特定Windows用户获取文件夹的ACL权限(这个东西)?"
DACL返回一个指针,您可以使用该指针从中提取值。
我有一个你可以看的演示程序,它基本上从给定的文件或目录加载DACL信息。该页面的链接如下所示。
Sample GetNamedSecurityInfo() call
"我假设我需要调用GetNamedSecurityInfo,但如何从中获取用户帐户的权限?"
您可以通过调用GetAce()来遍历列表,并从每个项目中提取域/用户名。
再次,请参阅我用C ++编写的示例代码。