首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

减低命名管道的完整性级别

2013-01-07 
降低命名管道的完整性级别我有一个进程和IE的插件,两个要进行管道通信,但由于IE打开保护模式,使插件的完整

降低命名管道的完整性级别
我有一个进程和IE的插件,两个要进行管道通信,但由于IE打开保护模式,使插件的完整性级别变低,而进程中的管道完整性级别为中,低级别的打不开高的,所以进程通信失败,按msdn上的一段代码,但可能因为什么权限的问题,老是失败,请问如何解决啊!!!!


bool SetObjectToLowIntegrity( 
 HANDLE hObject, SE_OBJECT_TYPE type = SE_KERNEL_OBJECT) 


LPCSTR LOW_INTEGRITY_SDDL_SACL = "S:(ML;;NW;;;LW)"; 
bool bRet = false; 
DWORD dwErr = ERROR_SUCCESS; 
PSECURITY_DESCRIPTOR pSD = NULL; 
PACL pSacl = NULL; 
BOOL fSaclPresent = FALSE; 
BOOL fSaclDefaulted = FALSE; 

if ( ConvertStringSecurityDescriptorToSecurityDescriptor ( 
LOW_INTEGRITY_SDDL_SACL, SDDL_REVISION_1, &pSD, NULL ) ) 

if ( GetSecurityDescriptorSacl ( 
pSD, &fSaclPresent, &pSacl, &fSaclDefaulted ) ) 

dwErr = SetSecurityInfo ( 
hObject, type, LABEL_SECURITY_INFORMATION,
NULL, NULL, NULL, pSacl ); 

bRet = (ERROR_SUCCESS == dwErr); 


LocalFree ( pSD ); 


return bRet; 
}
[解决办法]
哪个函数失败
进程还是插件执行这些代码
[解决办法]
把你的进程中的管道要求设置为低!

[解决办法]
要修改sacl,进程需要SE_SECURITY_NAME特权,你用procexp检查一下

热点排行