gpt4 book ai didi

c++ - 我们如何将 SECURITY_ATTRIBUTES 与 SHCreateDirectoryEx() 一起使用?

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:08 26 4
gpt4 key购买 nike

我的要求如下:

  1. 在指定位置创建目录。
  2. 设置其属性,使文件夹“只读”。换句话说,用户帐户不应在此文件夹中创建文件夹/文件。

现在,我可以创建目录如下:

SHCreateDirectoryEx( NULL, <path>.c_str(), NULL );

我现在想设置适当的安全属性。任何帮助/代码示例将不胜感激。

平台:Win7(语言:C++/C)

最佳答案

您要做的第一件事是创建一个 SECURITY_ATTRIBUTES 结构,并设置它的成员。

SECURITY_ATTRIBUTES SecAttr;

SecAttr.size = sizeof(SECURITY_ATTRIBUTES); //Set size of structure

下一个成员是 SECURITY_DESCRIPTOR 类型,它实际上包含管理对此对象的安全访问所需的所有数据。

根据 MSDN documentation,您不能直接创建此结构,但您可以使用文档中提供的函数来创建这样的结构,根据需要设置所有必要的标志,然后获取指向它的指针以传递给 SecAttr

可以找到关于如何创建这样一个 SECURITY_DESCRIPTOR 结构的示例 here .在本示例中,它是针对注册表项完成的,但原理是相同的。

本质上,您是在填充 DACL ( Discretionary Security Access Control List ) 或 SACL ( System Access Control List 以及您希望对象具有的访问权限(读/写/只读)等的正确属性。

填写完整个 SECURITY_ATTRIBUTES 结构后,您可以将其传递给您的 SHCreateDirectoryEx 函数。

关于c++ - 我们如何将 SECURITY_ATTRIBUTES 与 SHCreateDirectoryEx() 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15273711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com