windows 安全API到底是如何使用? 高手请进!!

eliy1 2003-10-17 03:58:41
小弟最近在开发一个利用windows的api函数来禁止用户读写文件的小软件,
我的编程思路是先用GetNamedSecurityInfo获取一个文件(test.txt)的安全描述符以及它的DACL指针,然后采取基于委托访问控制的函数BuildExplicitAccessWithName()建立一个TRUSTEE结构与受托者(administrator)挂钩,并用SetEntriesInAcl()产生一个具有TRUSTEE结构性质的新的DACL,再使用SetNamedSecurityInfo()将新的DACL与该文件的安全描述符连接起来,程序运行没有出现问题,但是却无法禁止受托者读写该文件,经过调试发现
函数 dwRes = GetNamedSecurityInfo(
lpObjectName,
SE_FILE_OBJECT,
DACL_SECURITY_INFORMATION|OWNER_SECURITY_INFORMATION,
&psidOwner,NULL, &pOldDACL, NULL, &pSD);只接受到pSD 的指针和psidOwner的指针,但是其DACL的指针却没有接收到,函数返回值为 0。
翻阅MSDN,上面说的是如果要想获得该对象的所有者,组,和DACl,该对象的DACl 必须要有权限READ_CONTROL给调用者,然而在参数psidOwner中却接受到了所有者的指针。
百思不得其解,到底还有什么我没有做的??
高手赐教??
...全文
73 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanfyj 2003-11-11
  • 打赏
  • 举报
回复
up
蒋晟 2003-11-09
  • 打赏
  • 举报
回复
在用低级安全函数修改ACL的时候,所有拒绝访问项目都必须位于任意允许访问项目之前。必要时用户需要手动排序ACL。
蒋晟 2003-10-29
  • 打赏
  • 举报
回复
http://www.codeproject.com/useritems/cntfs_lib.asp
蒋晟 2003-10-21
  • 打赏
  • 举报
回复
示例代码在你的计算机上运行是否成功?
Administrator未必总是管理员的
tyzyx 2003-10-20
  • 打赏
  • 举报
回复
gz
zhaoweidf 2003-10-20
  • 打赏
  • 举报
回复
学习
蒋晟 2003-10-20
  • 打赏
  • 举报
回复
http://search.csdn.net/expert/topic/50/5001/2002/4/23/669580.htm

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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