设置文件权限的问题

xiluoyou 2010-08-23 03:57:47
在使用BuildExplicitAccessWithName的时候,用SET_ACCESS可使用户获得完全权限!
但使用DENY_ACCESS的时候,虽然拒绝项全部打勾了,而且不能访问,但允许项里也是全部打勾的,而且是灰色不能改变!要怎么样才能设成拒绝项全部打勾,而允许项不打勾?

BOOL ChangeAccountPrivilege(LPCTSTR lpPath,LPCTSTR lpAccount,BOOL Access)
{
DWORD dwSuccess;
EXPLICIT_ACCESS ea;
ACCESS_MODE AccessMode;
PACL lpNewDacl=NULL,lpOldDacl=NULL;

if(Access) AccessMode=SET_ACCESS; else AccessMode=DENY_ACCESS;
do
{

dwSuccess=GetNamedSecurityInfo((LPTSTR)lpPath,SE_FILE_OBJECT,DACL_SECURITY_INFORMATION,NULL,NULL,&lpOldDacl,NULL,NULL);
if(dwSuccess!=ERROR_SUCCESS) return FALSE;
ZeroMemory(&ea,sizeof(EXPLICIT_ACCESS));
BuildExplicitAccessWithName(&ea,(LPTSTR)lpAccount,GENERIC_ALL,AccessMode,SUB_CONTAINERS_AND_OBJECTS_INHERIT);
dwSuccess=SetEntriesInAcl(1,&ea,lpOldDacl,&lpNewDacl);
if(dwSuccess!=ERROR_SUCCESS) return FALSE;
dwSuccess=SetNamedSecurityInfo((LPTSTR)lpPath,SE_FILE_OBJECT,DACL_SECURITY_INFORMATION,NULL,NULL,lpNewDacl,NULL);
if(dwSuccess!=ERROR_SUCCESS) { LocalFree(lpNewDacl); return FALSE; }
} while(FALSE);
LocalFree(lpNewDacl);
return TRUE;
}
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiluoyou 2010-08-24
  • 打赏
  • 举报
回复
晕,真的没有人知道吗?

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧