降低命名管道的完整性级别我有一个进程和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检查一下