![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SECURITY ATTRIBUTES
Ермак © (2004-02-11 12:36:00)Добрый день, уважаемые!
Подскажите пожалуйста, как работать c SECURITY ATTRIBUTES, или ссылку на инфу русскоязычную, а то в хелпе СДК так запутанно все, и Рихтер тоже отделался парой фраз...
Конкретнее: у меня есть программа-сервис под НТ. Она создает проецируемый в память файл. Какие нужно указать атрибуты, чтобы можно было его открыть из а)проги, работающей от админа
б)проги, работающей от любого логина? При указании 0 - не прокатывает, хотя Рихтер пишет, что админы могут открывать любой такой объект ядра.
Заранее огромное спасибо.
Ермак (2004-02-15 14:50:00) [1]Спасибо, работает.
Но... Я хотел бы сделать различный доступ для различных пользователей. КАК это сделать В ПРИНЦИПЕ я уже разобрался. Решил написать библиотечку на VisualC++. Короче говоря, прочитал, что для SECURITY_ATTRIBUTES есть удобные классы в какой-то стандартной библиотеке ATL. Только как эту библиотеку подключить, я не дотумкал. ATL.H - такого нет. ИСкал в папке Висуал С файл с CSecurityAttributes - тоже нет. По ходу, эта библиотека вообще в VC не входит.
Может кто знает, где ее достать можно? Подскажите, плз.
ZZ (2004-02-14 22:40:00) [2]a) 0 (или что значт "от админа"?)
б) MSDN
Creating a Null DACL
The following example creates a mutex with a null DACL.
If you are creating one of these objects in an application and the object will be shared with a service, you could also use a null DACL to grant everyone access. As an alternative, you could add an access-control entry (ACE) to the DACL that grants access to the user account that the service is running under. This would restrict access to the object to the service.
PSECURITY_DESCRIPTOR pSD;
SECURITY_ATTRIBUTES sa;
pSD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR,
SECURITY_DESCRIPTOR_MIN_LENGTH);
if (pSD == NULL)
Error(...);
if (!InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION))
Error(...);
// Add a null DACL to the security descriptor.
if (!SetSecurityDescriptorDacl(pSD, TRUE, (PACL) NULL, FALSE))
Error(...);
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = pSD;
sa.bInheritHandle = TRUE;
Ермак (2004-02-14 10:51:00) [3]У Рихтера в "Создание эффективных Вин32 приложений..." ничего подробно не пишется. Там только то, как сделать нормальный средний случай. Об остальном он отговаривается, что дескать это все равно очень редко используется. А "Прог СЕрвер Прил" очень дорогая и купить возможности нет.
Может кто в Инете натыкался на электронную версию книги или просто подходящую инфу?
Если нет, то может подскажете, как для этого конкретного случая написать? Был бы чрезвыяайно благодарен. Хотя б общий принцип, как там устанавливается привилегия.
Alexander1966 (2004-02-13 10:29:00) [4]Джеффри РИХТЕР
"Создание эффективных WIN32-приложений
с учетом специфики 64-разрядной версии Windows"
Там и кроме этого масса полезной информации
Игорь Шевченко (2004-02-12 11:27:00) [5]Как раз у Рихтера и Кларка очень подробно расписано, как работать с SECURITY_ATTRIBUTES, "Программирование серверных приложений для Windows 2000"