Создание папки общего доступа
От: lexer_lx Украина  
Дата: 13.07.03 10:58
Оценка:
Нужно сделать папку общей посредством 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++' — ПК
Re: Создание папки общего доступа
От: Rn Россия  
Дата: 13.07.03 14:04
Оценка:
Здравствуйте, lexer_lx, Вы писали:

_>Нужно сделать папку общей посредством WinXP и VC++6.0 MFC Dialog Based.

_>Использую NetShareAdd и PSHARE_INFO_502.

Я пользуюсь SHARE_INFO_2
 NET_API_STATUS res;
 SHARE_INFO_2 si;
 DWORD parm_err = 0;

 res=NetShareAdd(0, 2, (LPBYTE)&si, &parm_err);
 if(res==0) Ok;

Под XP вроде работает. главное шоб строки в юникоде были

Занимаюсь проблемой со вчерашнего дня так что ни в чём не уверен.
DOCTRINA MULTIPLEX, VERITAS UNA.
Re: Создание папки общего доступа
От: Alex Fedotov США  
Дата: 14.07.03 04:07
Оценка:
Здравствуйте, 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.

Пример создания DACL можно найти в MSDN:
http://msdn.microsoft.com/library/en-us/security/security/creating_a_dacl.asp

или, если нужна совместимость с NT4, здесь:
http://www.rsdn.ru/Forum/Message.aspx?mid=23876&only=1
Автор: Alex Fedotov
Дата: 24.01.02
-- Alex Fedotov
Re[2]: Создание папки общего доступа
От: lexer_lx Украина  
Дата: 15.07.03 05:11
Оценка:
Привет Rn!

Если ты хочешь делать полноценные шАры, то уровня 2 тебе мало, нужен 502-й.
Но поле permission там игнорируется, так как в NT user-level security.
Если будут какие-нибудь соображения по этому поводу — поделись, плиз!
Я пробовал сделать SECURITY_DESCRIPTOR, но это такая x...ня, если честно, да к
тому же очень коряво документирована!
Может есть способы попроще узнать, имеет ли папка полный доступ по сети или
только на чтение, и как сделать папку такой ?
Re[3]: Создание папки общего доступа
От: Rn Россия  
Дата: 15.07.03 12:51
Оценка:
Здравствуйте, lexer_lx, Вы писали:

а чего ешё желать разрешения всё равно из политики груп берутся
а её только дескриптором задать.

Если NTFS можно персональный пароль задать и зашарить как попало.
DOCTRINA MULTIPLEX, VERITAS UNA.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.