Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизSetFileSecurity Найти похожие ветки
← →
Сергей Макс. © (2007-06-26 02:59) [0]Как пользоваться этой функцией?
Подскажите.
Зарание признателен за ответ.
← →
Джо © (2007-06-26 04:48) [1]> [0] Сергей Макс. © (26.06.07 02:59)
> Как пользоваться этой функцией?
> Подскажите.
> Зарание признателен за ответ.
Я пользовался.
Что подсказать?
Пожалуйста.
← →
Джо © (2007-06-26 04:49) [2]Не ответил на вопрос «Как пользоваться?». Извините. Отвечаю: пользоваться традиционно.
← →
Cj © (2007-06-26 09:56) [3]
> Как пользоваться этой функцией?
> Отвечаю: пользоваться традиционно.
всмысле в 24-ой?
← →
Lacmus © (2007-07-25 16:52) [4]Пример использования
uses
AccCtrl, AclApi;
function FileSetAccess(const FileName, UserName: string; dwAccess : DWord) : Boolean;
var
dwSize, dwError : DWord;
bDaclPresent : Bool;
bDaclDefaulted : Bool;
ea : EXPLICIT_ACCESS;
OldAcl : PACL;
NewAcl : PACL;
psd : PSECURITY_DESCRIPTOR;
sd : SECURITY_DESCRIPTOR;
begin
Result := False; psd := nil; NewAcl := nil;
if not GetFileSecurity(PChar(FileName), DACL_SECURITY_INFORMATION, Pointer(1),
0, dwSize) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then try
psd := HeapAlloc(GetProcessHeap, 8, dwSize);
if psd <> nil then begin
BuildExplicitAccessWithName(@ea, PChar(UserName), dwAccess,
SET_ACCESS, SUB_CONTAINERS_AND_OBJECTS_INHERIT{NO_INHERITANCE});
Result := GetFileSecurity(PChar(FileName), DACL_SECURITY_INFORMATION,
psd, dwSize, dwSize) and
GetSecurityDescriptorDacl(psd, bDaclPresent, OldAcl, bDaclDefaulted) and
(SetEntriesInAcl(1, @ea, OldAcl, NewAcl) = ERROR_SUCCESS) and
InitializeSecurityDescriptor(@sd, SECURITY_DESCRIPTOR_REVISION) and
SetSecurityDescriptorDacl(@sd, True, NewAcl, False) and
SetFileSecurity(PChar(FileName), DACL_SECURITY_INFORMATION, @sd);
end
finally
dwError := GetLastError;
if NewAcl <> nil then
LocalFree(HLocal(NewAcl));
if psd <> nil then
HeapFree(GetProcessHeap, 0, psd);
SetLastError(dwError)
end
end;
← →
Инс © (2007-07-26 09:28) [5]
> Сергей Макс. © (26.06.07 02:59)
> Как пользоваться этой функцией?
Достаточно просто:
1. Создаете дескриптор безопасности (SD)
2. Создаете список контроля доступа (ACL)
3. Заносите в этот список элементы (ACE), управляющие доступом к файлу
4. Назначаете полученный список дескриптору дезопасности в качестве DACL
5. Передаете ссылку на дескриптор в SetFileSecurity
Осталось только прогуляться по гуглу, чтобы найти смысл всех сказанный в данном посте незнакомых словей. Успехов!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c