• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Решено Как сохранить параметр до выхода из notes client

  • Автор темы Ruslan280
  • Дата начала
R

Ruslan280

Подскажите - такая необходимость возникла - сохранить параметр пока юзер лотус не закроет.
Как можно реализовать? или хотя бы в течение дня чтобы хранился
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
164
Вариантов много:
  1. в базе cache.ndk;
  2. в файле notes.ini (см. link removed):
  3. в любой специально созданной для этого базе;
  4. в профайле текущей базы.
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
164
где то я знаю, вопрос как ограничить текущей сессией.
Может быть, если вы более конкретно опишите стоящую перед вами задачу, нам будет легче вам подсказывать.
Что вы имеете ввиду под "сессией", запуск клиента Lotus Notes, открытие какой-то конкретной базы данных и т.п.? Какую проблему вы пытаетесь этим решить?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
в очереди, когда её удалять - решить самому
время жизни макс. ограничено временем жизни приложения
 
R

Ruslan280

Может быть, если вы более конкретно опишите стоящую перед вами задачу, нам будет легче вам подсказывать.
Что вы имеете ввиду под "сессией", запуск клиента Lotus Notes, открытие какой-то конкретной базы данных и т.п.? Какую проблему вы пытаетесь этим решить?

сохранить параметр пока юзер лотус не закроет.

конкретно - я запрашиваю у юзера пароль и он должен использоваться пока юзер не закрыл лотус.
[DOUBLEPOST=1447944156,1447944113][/DOUBLEPOST]
в очереди, когда её удалять - решить самому
время жизни макс. ограничено временем жизни приложения

что за "очередь" ? можно подробнее?
[DOUBLEPOST=1447944293][/DOUBLEPOST]
@Ruslan280,


Этот файл нельзя снести пока клиент загружен.
В ОС делается задание, которое пытается снести данный файл, если не удалось, то клиент открыт.

можно примерный пример? ) я в этой базе создаю док и туда прописываю пользователя и параметр.
и как потом искать? search ?
 
R

Ruslan280

Э-э-э-э... осмелюсь спросить "пароль от Lotus Notes или какой-то другой системы?"

логин-пароль от другой системы. просто надо сохранить чтобы каждый раз юзеру не пришлось вводить.
но если он закрыл лотус- то эти данные должны удаляться.
cache.ndk очищается при перезапуске?
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
164
Создайте в cache.ndk документ доступный только текущему пользователю (Authors/Readers поля) и не заморачивайтесь с его удалением. Каждый раз читайте из него логин/пароль, если вдруг будет ошибка при подключении (изменился пароль), "переспросите" и сохраните новое значение. Например, ScanEz как-то так делает.
 
R

Ruslan280

проверил - cache.ndk не очищается после перезапуска клиента.
в общем нормального механизма сохранить переменную сессии в лотусе не нашел.(очереди mq не беру из за сложности)

сделал так-создаю в своей базе документ-там пишу текущую дату, имя юзера и переменную.
потом при запросе - ищу документ db.search({form="cache" & username=}+session.username
если дата совпадает то беру значение

получается сессия в рамках дня
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
очереди mq не беру из за сложности
какие сложности?
создали
Dim queue As New NotesMessageQueue({MyQueue})
записали значение queue.Message={fake value}
считали значение s=queue.Message
считывание - удаляет значение, а потому опять его туда заносим queue.Message=s
умолчально AutoClose=True
это означает, что при удалении объекта - очередь удалится, избежать подобного можно выставив
queue.AutoClose=False
но в этом случае - время жизни очереди будет = перезапуску нотусни
Т.о. управление временем жизни может протекать через умолчальное значение (AutoClose=True) - время жизни объекта, создавшим очередь первым, определяет время жизни очереди.

и эта простая логика вызывает у вас вброс термина "из за сложности"!?
я стесняюсь спросить - а вы программировать не боитесь (из-за сложности) ;)
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
34
очереди mq не беру из за сложности
- нет там сложности. Как @lmike написал "бери, пользуйся"(с). Вся "сложность" - положить код в библу...
Примеры использования (элементарные) были здесь...
1 Если
сохранить параметр пока юзер лотус не закроет.
сугубо для этого юзера - писать в профайл этого юзера без сохранения. Ващще без заморочек...
2 Если инфа для ВСЕХ - писать в MQ.
И первое и второе - работа с оперативкой. Соотв. нет нужды следить за геморами при крахе нотуса\внезапного выкл.компа\и т.д.

сделал так-создаю в своей базе документ-там пишу текущую дату, имя юзера и переменную.
потом при запросе - ищу документ db.search({form="cache" & username=}+session.username
если дата совпадает то беру значение
- что будет если напр. пропадёт питание компа и юзверь снова запустит нотус? ;)
 
R

Ruslan280

- нет там сложности. Как @lmike написал
1 Если сугубо для этого юзера - писать в профайл этого юзера без сохранения. Ващще без заморочек...

как можно сохранить переменную если записать профайл без сохранения?


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

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
2 Если инфа для ВСЕХ - писать в MQ.
очень редкий случай
это надо чтобы юзер сделал switchID (другой) в нотусне
если разговор о клиенте (и AutoClose=False), на сервере - вопрос в топике не стоит
т.е. подходы 1 и 2 эквивалентны для обычного использования
но MQ проще использовать и контролировать
 
R

Ruslan280

но MQ проще использовать и контролировать

в описании либы для MQ текст:
Отлаживались они только под win32- R5, но в R6 , думаю, должны работать, т.к. никаких противопоказаний нет.

"должны работать" -то есть даже автор не уверен , а я буду использовать нигде толком не документированные api??

а в своем коде я уверен. он простой, понятный и делает то что мне надо.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
"должны работать" -то есть даже автор не уверен , а я буду использовать нигде толком не документированные api??

а в своем коде я уверен. он простой, понятный и делает то что мне надо.
это комментарии оригинала, сохранены
этот код (костяк) писал Дмитрий Акулов, я его модифицировал и дополнил для работы на платформах нотусни, но описание не менял
ДА писал только для винды
насчет - толком не документированное - это шутка?
Ваш код ещё кто-то будет использовать? а АПИ у вас есть и оно документировано? ;)
Давайте рассмотрим ваши варианты ;)
[DOUBLEPOST=1448029875,1448029656][/DOUBLEPOST]оригинал
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!