Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Вниз

Помогите создать DACL   Найти похожие ветки 

 
Pearled ©   (2005-07-01 16:41) [0]

Нашел в MSDN пример на С++ создания стандартного DACL для каталога.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secbp/security/creating_a_dacl.asp
Попытался переписать в Delphi, но, видимо, что-то сделал не так, потому что не работает.. Ошибка происходит при вызове функции СonvertStringSecurityDescriptorToSecurityDescriptor.
В чем может быть ошибка? или может есть более легкий способ создания DACL?

function ConvertStringSecurityDescriptorToSecurityDescriptor(
StringSecurityDescriptor: LPCTSTR; StringSDRevision: DWORD;
SecurityDescriptor: PPSECURITY_DESCRIPTOR; SecurityDescriptorSize: PULONG): BOOL;
external "advapi32.dll" name "ConvertStringSecurityDescriptorToSecurityDescriptorA"

...

function CreateMyDACL(pSA: PSECURITYATTRIBUTES): BOOL;
var
  szSD: string;
  pc: PChar;
begin
szSD:= "D:" +    // Discretionary ACL
"(D;OICI;GA;;;BG)" +    // Deny access to built-in guests
"(D;OICI;GA;;;AN)" +    // Deny access to anonymous logon
"(A;OICI;GRGWGX;;;AU)"+  // Allow read/write/execute to authenticated users
"(A;OICI;GA;;;BA)";    // Allow full control to administrators
GetMem(pc,length(szSD)+1);
StrPCopy(pc,szSD);
if (pSA = nil) then
  result:= false
else
  result:= ConvertStringSecurityDescriptorToSecurityDescriptor(
               pc,
               1,
               pSA^.lpSecurityDescriptor,
               nil);
end;

procedure main;
var
 sa: PSECURITYATTRIBUTES;
begin
sa^.nLength:= sizeof(SECURITY_ATTRIBUTES);
sa^.bInheritHandle:= FALSE;
if CreateMyDACL(sa) then
...........


 
BiN ©   (2005-07-01 17:22) [1]



function ConvertStringSecurityDescriptorToSecurityDescriptor(StringSecurityDescriptor: LPCSTR;
 StringSDRevision: DWORD; var SecurityDescriptor: PSECURITY_DESCRIPTOR;
 SecurityDescriptorSize: PULONG): BOOL; stdcall; external advapi32 name "ConvertStringSecurityDescriptorToSecurityDescriptorA";

{$EXTERNALSYM ConvertStringSecurityDescriptorToSecurityDescriptor}

...

procedure TSecurityDescriptor.SetSDDLString;
var
 SRSecDesc: PSecurityDescriptor;
begin
 if ConvertStringSecurityDescriptorToSecurityDescriptor(Pchar(StringSecurityDescriptor),
                                                        SDDL_REVISION_1,
                                                        SRSecDesc, nil)
 then
 begin
   try
     SetSecurityDescriptor(SRSecDesc);
   finally
     LocalFree(HLOCAL(SRSecDesc));
   end;
 end
 else RaiseLastOSError;
end;



 
BiN ©   (2005-07-01 17:26) [2]

Паараметры в догонку:
procedure TSecurityDescriptor.SetSDDLString(const StringSecurityDescriptor: String);

В том же msdn есть пример SDDL-строк.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.077 c
1-1122845585
SpyBoy
2005-08-01 01:33
2005.08.21
A la windows xp


9-1114458647
NotBeginner
2005-04-25 23:50
2005.08.21
Opengl engine


14-1122567143
Ego
2005-07-28 20:12
2005.08.21
Творческий кризис.


4-1120039713
Maxk
2005-06-29 14:08
2005.08.21
как получить и название видюхи, материнки и т. д.


1-1122615127
JetMan
2005-07-29 09:32
2005.08.21
Отобразить XML в виде дерева





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский