我需要使用Win32 API来创建具有特定权限的文件夹。正如我一直在浏览文档,我发现两个例子似乎是合理的:使用SDDL或手动创建安全描述符的区别?
这个例子创建一个
DACL
使用SDDL,它增加了一个SECURITY_ATTRIBUTES
结构,并用它来创建一个文件夹:此示例手动指定
SID_IDENTIFIER_AUTHORITY
,PSID
,EXPLICIT_ACCESS
结构(包括ACCESS_MASK
等),TRUSTEE
,依此类推,直到所得SECURITY_ATTRIBUTES
结构被应用到新的对象(注册表项,在这个例子的情况下):
在我看来,使用SDDL是更容易使用和更小的bug容易,一旦你过去粗糙的语法。
这两种方法之间有什么区别?哪种在工业中更常用?
就最终结果而言,没有区别。手动方法稍微快一点,但除非你试图每秒产生一千个安全描述符,这并不重要。一些应用程序使用手动方法的主要原因是代码是在SDDL存在之前编写的。 –
...尽管如果有输入参数,即“如果您事先不知道安全描述符将需要什么”,那么有时可以更清楚地构建安全描述符“手动”。 –