Главная страница
    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-1122823023
TStas
2005-07-31 19:17
2005.08.21
Как делят потоки стек?


4-1120018732
leonidus
2005-06-29 08:18
2005.08.21
Как отследить момент отпускания левой клавиши мыши?


14-1122632474
Kerk
2005-07-29 14:21
2005.08.21
Удобство vs приватность в сети. Диалог. Мысли?


14-1122718012
Ajax
2005-07-30 14:06
2005.08.21
Экспоненциальное усреднение


14-1122466533
Lexer
2005-07-27 16:15
2005.08.21
Кляп удаленному компьютеру





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский