AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.07.2009, 23:04   #1  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Вопрос по доступу к папкам Win
Задача по Аксапте 3.
Нужен документооборот. Доработан стандартный функционал.

Одна проблема - пользователь может залезть в папку через мой компьютер и удалить прикрепленные файлы ( в самой аксапте установлен запрет на это).

Прочла в документации по Win, что файлы наследуют доступ от папки (проверено опытным путем). Получается, что нельзя установить запрет на папку и оставить полный доступ на файлы в ней.

Как идея, дать доступ к папке через пользователя администратор AOS, но поможет ли это? У меня нет возможности протестировать.

Может кто решал проблему: запрет открытия папки и при этом полный доступ на файлы в ней.
Старый 07.07.2009, 23:28   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Arahnid Посмотреть сообщение
Задача по Аксапте 3.
Нужен документооборот. Доработан стандартный функционал.

Одна проблема - пользователь может залезть в папку через мой компьютер и удалить прикрепленные файлы ( в самой аксапте установлен запрет на это).

Прочла в документации по Win, что файлы наследуют доступ от папки (проверено опытным путем). Получается, что нельзя установить запрет на папку и оставить полный доступ на файлы в ней.

Как идея, дать доступ к папке через пользователя администратор AOS, но поможет ли это? У меня нет возможности протестировать.

Может кто решал проблему: запрет открытия папки и при этом полный доступ на файлы в ней.
Так а зачем вообще пользователям тогда доступ к этой папке?
Если с этой папкой работа должна идти только через Аксапту, то нужно дать права пользователю, под которым работает АОС и всё... (если конечно у вас все через АОС работают)
__________________
Zhirenkov Vitaly
Старый 07.07.2009, 23:29   #3  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Мне, вроде, удалось. На NTFS. Или я не понял вопрос.
__________________
С уважением,
glibs®
Старый 08.07.2009, 07:19   #4  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
->
Цитата:
Сообщение от Arahnid Посмотреть сообщение
Прочла в документации по Win, что файлы наследуют доступ от папки (проверено опытным путем). Получается, что нельзя установить запрет на папку и оставить полный доступ на файлы в ней.
На самом деле это не совсем так, т.е. отсутствие прав доступа к папке, еще не говорит о том, что доступа нет к файлам в этой папке.

Цитата:
Сообщение от Arahnid Посмотреть сообщение
Может кто решал проблему: запрет открытия папки и при этом полный доступ на файлы в ней.
К сожалению, в X++ подобной задачи решать не приходилось, поэтому всё чем могу поделиться, так это кодом на C++ (компилировал в MVS 2005, MVS2008)(писал это года 3-4 назад, но насколько помню работает как на FAT32, так и на NTFS), в принципе можно обернуть в dll и использовать в AX, а возможно будет проще один раз выполнить и заблокировать директорию на совсем :

PHP код:
#include <windows.h>
#include <windowsx.h>
#include <sddl.h>
//---------------------------------------------------------------------------
bool CreateDACL(SECURITY_ATTRIBUTES *pSAwchar_t *szSD)
{
if (
pSA == NULL) return false;
return 
ConvertStringSecurityDescriptorToSecurityDescriptor(szSD,
SDDL_REVISION_1,
&(
pSA->lpSecurityDescriptor),
NULL);
};
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void BlockDirectory(wchar_t *DirName)
{
wchar_t *sz1 _T("D:(D;;;;;BA)");
SECURITY_ATTRIBUTES sa;
sa.nLength sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle false;
CreateDACL(&sasz1);
SetFileSecurity(DirName4sa.lpSecurityDescriptor);
};
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void UnBlockDirectory(wchar_t *DirName)
{
wchar_t *sz1 _T("D:(A;;GA;;;BA)");
SECURITY_ATTRIBUTES sa;
sa.nLength sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle false;
CreateDACL(&sasz1);
SetFileSecurity(DirName4sa.lpSecurityDescriptor);
};
//--------------------------------------------------------------------------- 
BlockDirectory() - блокирует директорию, UnBlockDirectory() - разблокирует директорию, параметр sz1 - это строковый формат прав, более подробно читайте в MSDN про Security Descriptor String Format(http://msdn.microsoft.com/en-us/libr...70(VS.85).aspx).

BlockDirectory() - закрывает директорию напрочь, забирая все права, но если вы точно знаете путь к файлу в этой директории, то можно легко его просмотреть и изменить.

P.S. Пример, есть каталог c:\1, в нем есть файл 1.txt, выполняем функцию BlockDirectory(), после этого вы не сможете попасть в данный каталог, но выполнив команду notepad c:\\1\\1.txt вы откроите данный файл.
Старый 08.07.2009, 10:07   #5  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Цитата:
Сообщение от ZVV Посмотреть сообщение
Так а зачем вообще пользователям тогда доступ к этой папке?
Если с этой папкой работа должна идти только через Аксапту, то нужно дать права пользователю, под которым работает АОС и всё... (если конечно у вас все через АОС работают)
Здесь у меня и возник вопрос: а если я буду под root AOS запускать, то у пользователей не будет проблем? На данный момент запуск делаю через Local Service. Кроме того, а под каким пользователем в момент создания файла в документообороте в Аксапте идет обращение к папке?

Как посмотреть под каким пользователем происходит запись файла из аксапты?

Последний раз редактировалось Arahnid; 08.07.2009 в 10:18.
Старый 08.07.2009, 10:29   #6  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Arahnid Посмотреть сообщение
Здесь у меня и возник вопрос: а если я буду под root AOS запускать, то у пользователей не будет проблем? На данный момент запуск делаю через Local Service. Кроме того, а под каким пользователем в момент создания файла в документообороте в Аксапте идет обращение к папке?

Как посмотреть под каким пользователем происходит запись файла из аксапты?
Если вы работаете через АОС то и файлы будет писаться/читаться от пользователя АОС.
Посмотрите просто в винде свойства файла, кто его создал/писал...
__________________
Zhirenkov Vitaly
Старый 08.07.2009, 11:06   #7  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Цитата:
Сообщение от ZVV Посмотреть сообщение
Если вы работаете через АОС то и файлы будет писаться/читаться от пользователя АОС.
Посмотрите просто в винде свойства файла, кто его создал/писал...
Там владелец - конкретный пользователь. Получается файл создает конкретный пользователь и, если дать доступ на папку от root, то получается пользователям будет запрещено создавать файл?

Последний раз редактировалось Arahnid; 08.07.2009 в 11:09.
Старый 10.07.2009, 16:07   #8  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Arahnid Посмотреть сообщение
Там владелец - конкретный пользователь. Получается файл создает конкретный пользователь и, если дать доступ на папку от root, то получается пользователям будет запрещено создавать файл?
Вы ж учитывайте, что код может выполняться на сервере, а может на клиенте...
__________________
Zhirenkov Vitaly
Теги
ax3.0, документооборот, права доступа, папка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX UK: Demonstrating & Discovery to Win Blog bot DAX Blogs 0 27.01.2009 10:05
Вопрос по возвратам soad DAX: Функционал 2 24.07.2008 13:04
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
расчеты с персоналом. НДФЛ. вопрос чайника shumelka DAX: Функционал 2 25.03.2004 11:36
Вопрос по счетам на оплату поставщикам sergey_alekseev DAX: Функционал 11 26.08.2003 19:43

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:40.