我需要使用Win32 API创建具有特定权限的文件夹。在我浏览文档时,我发现了两个看似合理的例子:
此示例使用SDDL创建DACL
,将其添加到SECURITY_ATTRIBUTES
结构中,并使用它创建文件夹:
此示例手动指定SID_IDENTIFIER_AUTHORITY
,PSID
,EXPLICIT_ACCESS
结构(包括ACCESS_MASK
等),TRUSTEE
等等直到生成的SECURITY_ATTRIBUTES
结构应用于新对象(注册表项,在此示例中):
在我看来,一旦你超越了粗糙的语法,使用SDDL就容易使用,而且容易出错。
这两种方法之间有什么区别?哪个更常用于工业?
答案 0 :(得分:2)
现在,您可以使用其中任何一种。 SDDL只是一个供人看的“友好”字符串。在某些时候,必须先将它们转换为二进制等价物,然后才能被大多数安全功能使用。
如果我没记错的话,在Windows 2000中添加了SDDL字符串支持。每个新的Windows版本都会添加更多well-known aliases。
除非您支持Windows NT4,或者需要使用晦涩的别名,否则您可以使用SDDL字符串(如果您愿意)。
如果速度更重要,那么经典的方式可能更快。