Re[2]: Настройка безопасности сервера во время регистрации
От: Alexey Shirshov Россия http://wise-orm.com
Дата: 05.03.03 13:41
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, egoroff, Вы писали:


[]

Это все прекрасно, но человеку нужно настроить безопасность, а это значения LaunchPermission и AccessPermission.
Они представляют собой обыкновенные sd (security descriptors) в относительном формате. Работать с этим форматом можно с помощью функций MakeSelfRelativeSD и MakeAbsoluteSD.
Когда-то давно я писал тулзу по настройке всего этого хозяйства, но так и не дописал. Однако кое-что получилось:

void DumpKey(PCTSTR key_name)
{
    CRegKey key;
    if (key.Open(HKEY_CLASSES_ROOT,key_name) == ERROR_SUCCESS){
        DWORD type_key = REG_BINARY;
        PBYTE pbuf = (PBYTE)_alloca(1000);
        DWORD len = 1000;
        if (RegQueryValueEx(key,_T("AccessPermission"),0,
            &type_key,pbuf,&len) == ERROR_SUCCESS){
            if (type_key == REG_BINARY){
                security::CPrivateSD sd;
                sd.LoadFromSelfRelative(pbuf);
                cout << sd;
            }
        }
    }
}
...
DumpKey(_T("AppID\\{ххх}"));


Могу объяснить поподробнее работу классов. Может (если покапаюсь серьезно) собрать классы воедино и выложить в инет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.