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中却接受到了所有者的指针。
百思不得其解,到底还有什么我没有做的??
高手赐教??