首页
社区
课程
招聘
[求助]设置文件权限的问题
发表于: 2010-8-23 16:01 4274

[求助]设置文件权限的问题

2010-8-23 16:01
4274
在使用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;
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 241
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
。。。,没有人用过吗?
2010-8-24 15:56
0
游客
登录 | 注册 方可回帖
返回
//