Нужно сделать папку общей посредством WinXP и VC++6.0 MFC Dialog Based.
Использую NetShareAdd и PSHARE_INFO_502.
Все работает, но игнорируется поле Permission, позволяющее задать права доступа к папке.
В МСДН сказано что нужно иметь уровень share-level security, а по умолчанию у программера
как я понял user-level.
По такой же причине не работает NetShareEnum для любого хоста.
Можно конечно посредством WNetOpenEnum... , но скрытых папок я не увижу
Не подскажете как программно можно установить нужный sequrity level?
Или каким еще способом можно задать атрибуты папки?
Вопрос непростой, насколько я понял — нигде в инете пока ответа не нашел,
хотя в одном месте этот вопрос тоже был задан.
Заранее благодарен.
13.07.03 16:57: Перенесено модератором из 'C/C++' — ПК
Здравствуйте, lexer_lx, Вы писали:
_>Нужно сделать папку общей посредством WinXP и VC++6.0 MFC Dialog Based. _>Использую NetShareAdd и PSHARE_INFO_502.
Здравствуйте, lexer_lx, Вы писали:
_>Нужно сделать папку общей посредством WinXP и VC++6.0 MFC Dialog Based.
_>Использую NetShareAdd и PSHARE_INFO_502. _>Все работает, но игнорируется поле Permission, позволяющее задать права доступа к папке. _>В МСДН сказано что нужно иметь уровень share-level security, а по умолчанию у программера _>как я понял user-level.
Да не у программера, а в NT/Win2K/XP всегда используется user-level security, то есть каждый пользователь имеет свои собственные имя пользователя и пароль, а дескриптор безопасности задает права доступа отдельно для разных категорий пользователей. (В отличие от этого, при share-level security, каждой папке назначается свой пароль, и все пользователи имеют одинаковый доступ к папке).
Чтобы управлять доступом к папке, тебе нужно использовать поле shi502_security_descriptor. В него нужно записать указатель на дескриптор безопасности с подходящим DACL.
Если ты хочешь делать полноценные шАры, то уровня 2 тебе мало, нужен 502-й.
Но поле permission там игнорируется, так как в NT user-level security.
Если будут какие-нибудь соображения по этому поводу — поделись, плиз!
Я пробовал сделать SECURITY_DESCRIPTOR, но это такая x...ня, если честно, да к
тому же очень коряво документирована!
Может есть способы попроще узнать, имеет ли папка полный доступ по сети или
только на чтение, и как сделать папку такой ?