通过Win32 API更改文件夹安全权限

时间:2008-10-24 19:04:56

标签: c++ security winapi

我的C ++应用程序在%CSIDL_COMMON_APPDATA%\Company\Product中存储了一些常见的用户数据。我想确保Users组对此文件夹具有写入权限,而在Vista上则没有。我该怎么做?

1 个答案:

答案 0 :(得分:5)

使用ATL自己想出来......

CDacl oDacl;
AtlGetDacl(strFolder, SE_FILE_OBJECT, &oDacl);
oDacl.RemoveAces(Sids::Users()); // Remove existing "Users" access
oDacl.AddAllowedAce(Sids::Users(), FILE_ALL_ACCESS, CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE);
AtlSetDacl(strFolder, SE_FILE_OBJECT, oDacl);

当然我的真实代码包含错误检查。