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

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

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

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

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

ЭЦП (открытый ключ)

srgsrv

Member
27.12.2019
8
0
BIT
0
Добрый день, коллеги! С Lotus знаком недавно и появилась такая проблемка, есть код LotusScript, который считывает поочередно строчки из файла: имясертификата.cer и затем , соответственно, информацией из этого сертификата заполняются поля в форме в Lotus'е, так вот, в каждом сертификате есть поле, которого нет в форме в самом Лотусе, можно ли сделать так, чтобы при выполнении кода, эта строка пропускалась и не считывалась? Проблема в том, что были старые сертификаты и в них эта строка выглядела примерно так: НАЗВАНИЕСТРОКИСЕРТИФИКАТА = ул. названиеулицы, д 123 , теперь она выглядит так: НАЗВАНИЕСТРОКИСЕРТИФИКАТА = названиеулицы 123 , таким образом, в коде есть строки, которые помогают игнорировать название в одном формате, а теперь новые сертификаты и строка не игнорируется, а что делать если вдруг появится еще какая-нибудь лишняя точка в названии и тогда придется снова менять код. Надеюсь, вы поняли о чем я :D пример кода ниже. Заранее спасибо!

If Instr(txt$, "НАЗВАНИЕСТРОКИСЕРТИФИКАТА=") > 0 Then
txt$ = Strright(txt$, "НАЗВАНИЕСТРОКИСЕРТИФИКАТА=")
If (txt$ ="Название Улицы 123") Then
Else
Call uidoc.FieldSetText("ПОЛЕ", txt$)
End If
End If
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177

srgsrv

Member
27.12.2019
8
0
BIT
0
трэш, зачем работать с uidoc?я - нет
надо игнорировать поле если его содержимое не соответ. шаблону или что?


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

да, есть старые сертификаты, есть новые, значение(вариант записи) строки "STREET" в них различается. задача: вовсе игнорировать эту строку, т.к. в карточке документа в Lotus такой строки нет.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
скрипт не мой, я человек новый, так скажем.

да, есть старые сертификаты, есть новые, значение(вариант записи) строки "STREET" в них различается. задача: вовсе игнорировать эту строку, т.к. в карточке документа в Lotus такой строки нет.
опять у меня не сложилась картинка...
есть сертификат, в нем есть поля со значениями, что нужно:
- если поле имеет к-л значение отличное от привычного - его игнорить?
- если поле отсут в форме - его игнорить,
какой вариант?
Если второе - то просто смените алгоритм записи документа - путь будет информация, но не будет отображаться, пока в форме не появится поле
в это случае не нужно вовсе трогать uidoc, а только связанный с ним Document
т.е. беда вашего кода в uidoc.FieldSetText
д.б. Set doc=uidoc.Document:Call doc.ReplaceItemValue({Имя поля},{значение}):..вставляем др. поля..:unid$=doc.UniversalID:doc.Save:uidoc.Close True:Set doc=db.GetDocumentByUNID(unid$):Dim wks As New NotesUIWorkSpace:Call wks.EditDocument(True, doc)
если док не нужно сохранять в бэке сразу, можно uidoc.Refresh (вместо кода начиная с Save), но не во всех случаях сработает (зависит от расположения кода), можно через промежуточный инмемори док
 
Последнее редактирование:

srgsrv

Member
27.12.2019
8
0
BIT
0
опять у меня не сложилась картинка...
есть сертификат, в нем есть поля со значениями, что нужно:
- если поле имеет к-л значение отличное от привычного - его игнорить?
- если поле отсут в форме - его игнорить,
какой вариант?
Если второе - то просто смените алгоритм записи документа - путь будет информация, но не будет отображаться, пока в форме не появится поле
в это случае не нужно вовсе трогать uidoc, а только связанный с ним Document
т.е. беда вашего кода в uidoc.FieldSetText
д.б. Set doc=uidoc.Document:Call doc.ReplaceItemValue({Имя поля},{значение}):..вставляем др. поля..:unid$=doc.UniversalID:doc.Save:uidoc.Close True:Set doc=db.GetDocumentByUNID(unid$):Dim wks As New NotesUIWorkSpace:Call wks.EditDocument(True, doc)
если док не нужно сохранять в бэке сразу, можно uidoc.Refresh (вместо кода начиная с Save), но не во всех случаях сработает (зависит от расположения кода), можно через промежуточный инмемори док




желательно первое, НО, игнорить не при условии, что отличное от привычного, а игнорить ВООБЩЕ, т.к. в карточке документа, поля Адрес (поле STREET в сертификате) нет совсем. на данный момент алгоритм такой:

- если поле STREET содержит "Название Улицы 123" тогда его игнорить (при этом, если формат написания адреса другой: "ул. названиеулицы, д 123 "(новый сертификат), это поле уже игнорироваться не будет!)
 
Мы в соцсетях:

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