Unc путь

Тема в разделе "Lotus - Программирование", создана пользователем DNT, 10 янв 2007.

  1. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Всех с прошедшими и наступающими!

    Есть задача сохранять вложения из пришедших писем в определенную папку на сервере. Всё бы ничего, НО появился вопрос : как сохранить файл на другом серваке используя UNC путь например \\server\share\ ???? Есть ли способ предварительно сохранить "имя_пользователя:пароль" и потом под ним ломиться на необходимую шару ???

    Заранее спс за ответы
     
  2. Elena Nefedova

    Elena Nefedova Гость

    Я серверным агентом с расширенными правами такие вещи делаю.
    Там какой-то в виндах есть запрет: невозможно подконнектиться к одному и тому же серверу с одной и той же станции под разными пользователями. Так что там хоть храни username, хоть нет, а винды не дадут :(
     
  3. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    А шо ж, извените, делать? Насилуют голову ведь. :(
    Может в две итерации? Сначало на локальный диск извлекаем а потом копируем каким-то батником через шел? Только тоже вопрос как с правами разрулить?
     
  4. oshmianski

    oshmianski Гость

    Для: DNT
    может попробовать так.

    1. n = Shell({net use s: ...})
    2. складываем вложения
    3. n = Shell({net use s: /delete})

    Тут можно и пользователя и пароль указывать
     
  5. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: oshmianski

    идея хороша. уже пробую. о результатах оповещу...
     
  6. Elena Nefedova

    Elena Nefedova Гость

    Для: DNT
    А чем стандартное журналирование не подходит?
    Там и сообщения полностью хранятся, и права разграничиваются, и другие есть плюсы...
     
  7. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: Elena Nefedova

    <!--QuoteBegin-Elena Nefedova+11:01:2007, 11:07 -->
    <span class="vbquote">(Elena Nefedova @ 11:01:2007, 11:07 )</span><!--QuoteEBegin-->стандартное журналирование
    [snapback]52810" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    А как это мне поможет складировать пришедшие файлы на другом сервере в определенную папку?
     
  8. Elena Nefedova

    Elena Nefedova Гость

    Я, собственно, и пытаюсь понять, насколько принципиально хранить в определенной папке, нарушая этим конфиденциальность в случае доступа к ней кого-то непроверенного.

    Открепление можно повесить на before-mail в базах контролируемых пользователей.
    Пароль можно зашифровать, а ключ прошить в ID сервера.
    net use при этом будет работать, если домино запущен как сервис, а не от имени пользователя.
    Иначе этому пользователю надо будет права раздавать на директорию, зато пароль не понадобится.
    При этом может снизиться производительность сервера.

    Если же вешать открепление на сторону клиента, то у текущего юзера должен быть доступ либо к ресурсу, либо к паролю.
    В последнем случае придется запоминать все(!!!) шары пользователя на целевой сервер, убивать их все, подключаться заново, совершать открепление, отключаться и восстанавливать все шары, как они были.
    А это как раз такое приключение на свою голову, что мало не покажется.

    Так что, если журналирование все же может решить вашу проблему, лучше его настроить, а не воплощать в жизнь описанный процесс.
     
  9. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: Elena Nefedova

    Спс за столь развернутый ответ.

    Задача открепления файликов висит на сервере по событию "After new mail ...".
    То место, куда положить текущий файл зависит только от темы письма, и не зашивается плотно в код. Существует док. настройки для возможных вариантов сабжекта. Пользователя и Пароль думаю хранить там же.

    Можете объяснить как правильно работать с полем Password и галкой Enabled encryption?
    <!--QuoteBegin-Elena Nefedova+11:01:2007, 11:40 -->
    <span class="vbquote">(Elena Nefedova @ 11:01:2007, 11:40 )</span><!--QuoteEBegin-->Пароль можно зашифровать, а ключ прошить в ID сервера.
    [snapback]52818" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Как прошить ключ? Где его для этого взять? И как с этим работать если эта база в дальнейшем будет распостраняться на другие сервера?
     
  10. Elena Nefedova

    Elena Nefedova Гость

    Для: DNT
    Поле Password в общем-то не нужно.
    Нужно обычное шифрованное поле.
    Для этого сначала создать какой-нибудь ключ, внятно названный.
    В свойствах формы указать этот ключ для шифрования по умолчанию.
    Создать поле и включить в нем опцию шифрования.
    А для пущей безопасности - скрыть это поле, чтоб никто на экране у админа не подсмотрел, а пароль выводить/изменять по кнопке.
    Изменять документ с зашифрованным полем смогут только обладатели ключа. Остальные могут только читать незашифрованные поля, если доступ на чтение есть.
    Теперь ключ надо распространить.
    Людям можно выслать его по почте, а в серверный ID надо прошивать из файла (сначала выгрузить в файл, потом войти в клиент под серверным ID, подгрузить ключ из файла, а затем заменить на реальном сервере старый ID без ключа на новый с ключом. Файл с ключом после этого удалить)

    Все операции по созданию/распространению ключа надо читать в хелпе. Кажется, в юзерском. А юзерский бывает и русский, что приятно.


    ЗЫ: After new mail... может не поймать быстро удаленный аттач или весь документ.



    ЗЗЫ: Лучше бы вам это все журналировать. А уже из журнала выгружать в директорию.
    Тоже повозиться надо с изучением вопроса - там шифруются данные автоматически, но я думаю, оно того стоит: это должно уменьшить нагрузку на сервер.
     
  11. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: Elena Nefedova

    Да, вот уж есть где поломать голову.
    А где почитать в хелпе про журналирование? Как это звучит на инглише?
     
  12. Elena Nefedova

    Elena Nefedova Гость

    Журналирование:
    Administrator Help, поиск по ключу Mail journaling и далее по ситуации

    Можно сделать базу, которая фоновым агентом прошерстит журнальную базу и все выгрузит.
     
  13. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: Elena Nefedova

    Буду копать.
    Но уже хочу отказаться от энкрипшена :( по причине сложности реализации и дальнейшего распостранения БД, такой халотности конечно нельзя допускать, всё зависит от способа использования БД: просто в моём случае овчинка выделки не стоит. База эта является мэйлиновской в нее присылает письма тоже не человек, а некий процесс, доступ в нее имеет только админский состав. Ну а от них скрывать пароль не имеет смысла. А журналирование тема интересная, бегло прочитал.

    Что скажете? В моем случае можно не заморачиваться с шифрованием?
     
  14. Elena Nefedova

    Elena Nefedova Гость

    Если админский состав и так имеет доступ всюду, то можно и не заморачиваться.
    Просто IBM это рекомендует.
     
  15. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для истории выкладываю кусок кода отвечающий за извлечение файла на сетевой ресурс.
    Переменные привык называть понятными именами так что думаю все понятно будет.

    ...
    'определим какой диск будем юзать
    disk$ = ServerDoc.Letter(0)
    'убиваем предыдущее подключение, если было - отключит, если не было отругается незаметно
    comand$ = "CMD.EXE /C net use " + disk$ +" /delete"
    rezult = Shell(comand$,1)
    'будем спать секунду после каждой сетевой операции - надо дать немного времени
    Sleep 1
    'подключаем диском необходимый сетевой фолдер под соответствующим именем и паролем
    comand$ = "CMD.EXE /C net use " + disk$ +" " + {"} + Path + {"} +" " + ServerDoc.fPassword(0) + " /user:" + ServerDoc.fUserName(0)
    rezult = Shell(comand$,1)
    Sleep 1
    'извлекаем файл локально в темповую директорию
    TempDir$ = Environ("Temp")
    Call o.ExtractFile( TempDir$ & "\" & FileName$)
    'мувим файл на наш сетевой диск
    comand$ = "CMD.EXE /C move /Y " + TempDir$ + "\" + FileName$ + " " +disk$ + "\" + FileName$
    rezult = Shell(comand$,1)
    Sleep 1
    Print ("File " & FileName$ & " was detached to " & Path & "\" )
    'убиваем подключение
    comand$ = "CMD.EXE /C net use " + disk$ +" /delete"
    rezult = Shell(comand$,1)
    ...
     
  16. oshmianski

    oshmianski Гость

    Для: DNT
    а зачем сначала сохранять во временную директорию? сразу сохранить на сетевой диск нельзя?
     
  17. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    Для: oshmianski

    Ждал этого вопроса.

    Нельзя потому что access denied. А когда копируешь или мувишь то винда помнит под кем подключен диск и у нее больше вопросов нет.
     
Загрузка...
Похожие Темы - Unc путь
  1. Cheburan
    Ответов:
    2
    Просмотров:
    547
  2. Botu
    Ответов:
    6
    Просмотров:
    1.068
  3. CaptainBob
    Ответов:
    1
    Просмотров:
    1.052
  4. lmike
    Ответов:
    17
    Просмотров:
    3.981
  5. lmike
    Ответов:
    8
    Просмотров:
    2.659

Поделиться этой страницей