Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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"


Наверх

Титульная страница Поиск, карта сайта Написать письмо