Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];
ВнизInitializeAcl SECURITY_ATTRIBUTES крутые вопросы Найти похожие ветки
← →
Georgiy (2006-03-22 23:35) [0]Код ниже.
Цель - делаю SECURITY_ATTRIBUTES для Всех доступ.
Выдает ошибку InitializeAcl - неправельно задан параметр,
Когда то работало после пляски с перебором,так как визуально все вроде правильно
доходило до того что ставил @pNewACL^ так как руки опускались, и спрашивается зачем мутили
(PSECURITY_DESCRIPTOR,TSECURITY_DESCRIPTOR,_SECURITY_DESCRIPTOR) смотришь одно (MSDN) ,а пишется другое ???
sd:PSECURITY_DESCRIPTOR
sd:_SECURITY_DESCRIPTOR
pNewACL:PACL;
pNewACL:_ACL; значений
var global
SA : _SECURITY_ATTRIBUTES;
procedure ALL;
var
sd:PSECURITY_DESCRIPTOR; // pointer äëÿ Alloc
s:pointer;
psidEver:PSID;
pNewACL:PACL;
FLAG:cardinal;
begin
TRY
if AllocateAndInitializeSid(SECURITY_WORLD_SID,1,SECURITY_WORLD_RID,0,0,0,0,0,0,0,p sidEver)=
false then showmessage("no a");;
if IsValidSid(psidEver)= false then showmessage("IsValidSid");
{ну выделил места до п0пы хватит}
pNewACL := PACL(LocalAlloc(LPTR,1024*8));
if not InitializeAcl(pNewACL^,1024*8,{ACL_REVISION}1) then showmessage("Error: " + SysErrorMessage(GetLastError) + " :InitializeAcl"); // тут ошибка мол неверный параметр
// AddAccessAllowedAce( _ACL
{непонятки требует _ACE а есть PACE,бросаем VOID чтоб подавился}
if AddAccessAllowedAce(pNewACL^, ACL_REVISION ,
STANDARD_RIGHTS_READ ,psidEver) then showmessage("AddAccessAllowedAceEx "+
SysErrorMessage(GetLastError));
if not IsValidAcl(pNewACL^) then showmessage("Error: IsValidAcl");
sd := pSECURITY_DESCRIPTOR(LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH));
if not Assigned(@SD) then showmessage("Error: PSECURITY_DESCRIPTOR(LocalAlloc");
if not InitializeSecurityDescriptor(sd,SECURITY_DESCRIPTOR_REVISION) then showmessage("Error:
InitializeSecurityDescriptor");
if not SetSecurityDescriptorDacl (sd,TRUE,@pNewACL,false) then showmessage("Error:
SetSecurityDescriptorDacl ");
ZeroMemory(@sa,SizeOf(sa));
sa.nLength:=sizeof(sa);
sa.bInheritHandle:=false;
sa.lpSecurityDescriptor:=sd;
if IsValidSecurityDescriptor(sd)=false then showmessage("IsValidSecurityDescriptor");
EXCEPT
showmessage("critiacal");
END;
end;
//------------------
← →
Leonid Troyanovsky © (2006-03-23 09:11) [1]
> Georgiy (22.03.06 23:35)
> Цель - делаю SECURITY_ATTRIBUTES для Всех доступ.
Попробуй так
procedure SetNullDacl(Handle: THandle);
const
SECURITY_DESCRIPTOR_REVISION = 1;
var
sd: TSecurityDescriptor;
begin
Win32Check(InitializeSecurityDescriptor( @sd,
SECURITY_DESCRIPTOR_REVISION));
Win32Check(SetSecurityDescriptorDACL(@sd, True, nil, False));
Win32Check(SetKernelObjectSecurity( Handle,
DACL_SECURITY_INFORMATION,
@sd));
end;
--
Regards, LVT.
← →
Georgiy (2006-03-23 13:34) [2]>не подойдет ,так как (@sd, True, nil, False));
мне надо не нулевой,а пустой ,чтоб добавить ACL
Уже добился без ошибок работает,получаю SA : _SECURITY_ATTRIBUTES;
Но при попытке использовать
if CreateEvent(@sa,true,false,"WWWWWTESTWWWWWWWWW")=0 then BEGIN
//str(GetLastError,s);
//showmessage(S);
showmessage("test "+ SysErrorMessage(GetLastError) );
выдает ошибку 1305 тоесть Уровень редакции неизвесен
(Версия изменений неизвестна)
кого sid , acl ?
← →
Leonid Troyanovsky © (2006-03-23 14:50) [3]
> Georgiy (23.03.06 13:34) [2]
> >не подойдет ,так как (@sd, True, nil, False));
> мне надо не нулевой,а пустой ,чтоб добавить ACL
А зачем что-то добавлять, если нужно открыть для всех?
{TSecurityDescriptor}
if not InitializeSecurityDescriptor(@sd, 1) or
not SetSecurityDescriptorDACL(@sd, true, PAcl(nil), False) then
raise Exception.Create("MailSlot security failed");
{TSecurityAttributes}
sa.nLength:=SizeOf(sa);
sa.lpSecurityDescriptor:=@sd;
sa.bInheritHandle:= False;
И этот sa использовать в CreateEvent.
--
Regards, LVT.
← →
Georgiy (2006-03-23 15:46) [4]>А зачем что-то добавлять, если нужно открыть для всех?
дык для отладки,чтобы потом вставить AddAccessDeniedAce,
а какой толк если и это не работает код (по минимому пока-что)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c