powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Cетевые права доступа к папке в Foxpro 9.0
8 сообщений из 8, страница 1 из 1
Cетевые права доступа к папке в Foxpro 9.0
    #34643994
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Как определить сетевые права доступа к папке в Foxpro 9.0 ?
Сервер Scripting (Microsoft Vizual Basic@Scripting Edition) похоже этого не может...
...
Рейтинг: 0 / 0
Cетевые права доступа к папке в Foxpro 9.0
    #34645321
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т. е. речь идет о разрешениях к общему ресурсу ? Или имеется в виду что-то другое ? Вроде бы этим занимается Api ф-я SetFileSecurity. Попробую разобраться как она работает.
...
Рейтинг: 0 / 0
Cетевые права доступа к папке в Foxpro 9.0
    #34648275
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, речь идёт о сетевых ресурсах
...
Рейтинг: 0 / 0
Cетевые права доступа к папке в Foxpro 9.0
    #34648299
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Права нужно давать при создании шары или для уже существующей ?
...
Рейтинг: 0 / 0
Cетевые права доступа к папке в Foxpro 9.0
    #34649805
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Права уже созданы админом. Надо их прочитать
...
Рейтинг: 0 / 0
Cетевые права доступа к папке в Foxpro 9.0
    #34653975
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если прочитать тогда проще:

LMEM_ZEROINIT=64
DECLARE LONG LocalAlloc IN win32api LONG uFlags,LONG uBytes
DECLARE LONG LocalFree IN win32api LONG hMem
hMem=LocalAlloc(LMEM_ZEROINIT,4096)
pbuf=hMem

DECLARE LONG NetShareGetInfo IN netapi32 STRING @servername,STRING @netname,LONG nlevel,INTEGER @pbuf
DECLARE LONG NetApiBufferFree IN netapi32 INTEGER bufptr
DECLARE INTEGER NetApiBufferSize IN netapi32 INTEGER lpBuffer,INTEGER @nSize
servername=STRCONV(STRCONV(''+CHR(0),1),5)
netname=STRCONV(STRCONV('2'+CHR(0),1),5) && зашарен каталог 'c:\2'
STORE 0 TO pbuf,lnSize
n=NetShareGetInfo(@servername,@netname,502,@pbuf)
NetApiBufferSize(pbuf,@lnSize)
bufptr=SYS(2600,pbuf,lnSize)
NetApiBufferFree(pbuf)

* здесь просто лень разбираться со структурой SHARE_INFO_502
DECLARE LONG IsValidSecurityDescriptor IN win32api STRING @pSecurityDescriptor
FOR i=1 TO lnSize
pSecurityDescriptor=SUBSTR(bufptr,i)
IF IsValidSecurityDescriptor(@pSecurityDescriptor)=1
EXIT
ENDIF
ENDFOR

DECLARE LONG GetSecurityDescriptorDacl IN win32api STRING pSecurityDescriptor,;
INTEGER @lpbDaclPresent,LONG @pDacl,INTEGER @lpbDaclDefaulted
STORE 1 TO lpbDaclPresent,lpbDaclDefaulted,pDacl
GetSecurityDescriptorDacl(pSecurityDescriptor,@lpbDaclPresent,@pDacl,@lpbDaclDefaulted)
pAcl=SYS(2600,pDacl,lnSize)
nkolacl=CTOBIN(SUBSTR(pAcl,5,2),'2RS') && êîë-âî ACL

DECLARE INTEGER GetAce IN win32api STRING @pAcl,INTEGER dwAceIndex,INTEGER @nAce
DECLARE LONG LookupAccountSid IN win32api STRING @lpSystemName,STRING @Sid,;
STRING @lpAccountName,LONG @cbName,STRING @ReferencedDomainName,LONG @cbReferencedDomainName,;
STRING @peUse
lpSystemName=''

* у меня почему-то эти значения
* по идее д.б. GENERIC_WRITE, GENERIC_READ и т.п.
perm_read=1179817
perm_readwrite=1245631
perm_all=2032127

FOR i=0 TO nkolacl-1
nAce=0
GetAce(@pAcl,i,@nAce)
pAce=SYS(2600,nAce,36)
access_mask=CTOBIN(SUBSTR(pAce,5,4),'RS')
Sid=RIGHT(pAce,28)
STORE SPACE(255) TO lpAccountName,ReferencedDomainName,peUse
STORE 255 TO cbName,cbReferencedDomainName
LookupAccountSid(@lpSystemName,Sid,@lpAccountName,@cbName,;
@ReferencedDomainName,@cbReferencedDomainName,@peUse)
MESSAGEBOX(ALLTRIM(lpAccountName,' ',CHR(0))+' : '+;
ICASE(access_mask=perm_all,'ALL',access_mask=perm_read,'READ',;
access_mask=perm_readwrite,'READWRITE','íå îïðåäåëåíî'))
ENDFOR

LocalFree(hMem)
CLEAR DLLS


* Почти все содрано отсюда:

* http://forum.foxclub.ru/read.php?29,270090,270853#msg-270853
* http://www.sql.ru/forum/actualthread.aspx?tid=139014
* http://www.news2news.com/vfp/?group=-1&function=1023
...
Рейтинг: 0 / 0
Cетевые права доступа к папке в Foxpro 9.0
    #34655121
Андрей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Но сложно то как... А средствами Scripting.FileSystemObject не возможно?
Есть ли где-то полная документация по объектам Scripting?
...
Рейтинг: 0 / 0
Cетевые права доступа к папке в Foxpro 9.0
    #34655764
Погодин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, без апи тут не обойтись. FileSystemObject поддерживает простейшие операции - копирование, удаление, атрибуты и т. п. Ни js, ни vbs, ни wsh не поддерживают обращение к апи. В VB с этим проблем нет. Документацию ищи в c:\Program Files\Microsoft Office\OFFICE11\1049\VBSCRIP5.CHM или в инете по имени VBSCRIP5.CHM, JSCRIPT5.CHM, WSH.CHM.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Cетевые права доступа к папке в Foxpro 9.0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]